如何更改刚绘制的Shape的颜色(ActionScript)

时间:2012-07-04 16:28:54

标签: flash actionscript

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

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

此代码之后是否可以更改这些圆圈的颜色?让我们说一段时间后......

1 个答案:

答案 0 :(得分: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轻松移动它。

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