2012-07-04 72 views
0

我画了一些图(圆形,矩形或只是一个线),之后我想改变它们的颜色而不绘制覆盖这些图形的另一个图形,这可能吗?如何更改刚绘制的形状的颜色(ActionScript)

graphics.beginFill(0x000000, 1); 
graphics.drawCircle(70, 67, 2); 
graphics.drawCircle(90, 67, 2); 
graphics.endFill(); 

此代码是否可以改变那些圆圈的颜色?让我们稍后再说...

回答

2

它是,它不是。一旦你绘制了这个形状,它就会被烘焙到该帧的绘制缓冲区中。如果你已经将它绘制到主框架缓冲区,就是这样,没有变化。您可以将其绘制到SpriteMovieClip的单独实例中,并使用ColorTransform

var mc:MovieClip=new MovieClip(); 

mc.graphics.beginFill(0x000000, 1); 
mc.graphics.drawCircle(70, 67, 2); 
mc.graphics.drawCircle(90, 67, 2); 
mc.graphics.endFill(); 

后来:

var c:ColorTransform = new ColorTransform(); 
c.color = (Math.random() * 0xFFFFFF); 
mc.transform.colorTransform = c; 

把你的形状在一个MovieClip还具有不必手动重绘每一帧(清除正常帧缓冲器不会清除MovieClip的优点这也意味着你可以轻松地将它移动到mc.xmc.y

出于好奇,为什么不能在绘制时设置颜色?

+0

我真的不知道有关movieClip的变换对象和colorTransform方法,我会尝试它们,谢谢你的回答,在我重绘这些像素之前,这是我知道这一刻的唯一方法 –

+0

Tell我是怎么回事! –