我已经画了一些图形(圆形、矩形或只是一条线),然后我想改变它们的颜色而不绘制另一个覆盖它们的图形,这可能吗?
graphics.beginFill(0x000000, 1);
graphics.drawCircle(70, 67, 2);
graphics.drawCircle(90, 67, 2);
graphics.endFill();
在这段代码之后可以改变那些圆圈的颜色吗?过段时间再说吧……
我已经画了一些图形(圆形、矩形或只是一条线),然后我想改变它们的颜色而不绘制另一个覆盖它们的图形,这可能吗?
graphics.beginFill(0x000000, 1);
graphics.drawCircle(70, 67, 2);
graphics.drawCircle(90, 67, 2);
graphics.endFill();
在这段代码之后可以改变那些圆圈的颜色吗?过段时间再说吧……
它是,它不是。一旦你绘制了那个形状,它就会被烘焙到该帧的绘制缓冲区中。如果您已将其绘制到主帧缓冲区,就是这样,没有变化。您可以做的是将其绘制到 aSprite
或MovieClip
和 use的单独实例中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;
将形状放入 aMovieClip
还具有不必在每一帧上手动重绘它的优点(清除正常的帧缓冲区不会清除's),还意味着您可以使用andMovieClip
轻松移动它。mc.x
mc.y
只是出于好奇,为什么不能在绘制时设置颜色?