0

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

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

在这段代码之后可以改变那些圆圈的颜色吗?过段时间再说吧……

4

1 回答 1

2

它是,它不是。一旦你绘制了那个形状,它就会被烘焙到该帧的绘制缓冲区中。如果您已将其绘制到主帧缓冲区,就是这样,没有变化。您可以做的是将其绘制到 aSpriteMovieClip和 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.xmc.y

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

于 2012-07-04T17:19:14.727 回答