我绘制了一些图形(圆形,矩形或只是一条线),之后我想改变它们的颜色,而不是绘制另一个图形覆盖它们,这可能吗?
graphics.beginFill(0x000000, 1);
graphics.drawCircle(70, 67, 2);
graphics.drawCircle(90, 67, 2);
graphics.endFill();
此代码之后是否可以更改这些圆圈的颜色?让我们说一段时间后......
答案 0 :(得分:2)
它是,它不是。绘制完该形状后,它会变成该帧的绘制缓冲区。如果你已经将它绘制到主框架缓冲区,那就是它,没有任何变态。您可以做的是将其绘制到Sprite
或MovieClip
的单独实例并使用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.x
和mc.y
轻松移动它。
出于好奇,为什么不能在绘制时设置颜色?