0

図形(円、長方形、または線)を描画しましたが、その後、それらを重ねて別の図形を描画せずに色を変更したいのですが、それは可能ですか?

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

このコードの後、それらの円の色を変更することができますか?しばらくしてから言いましょう...

4

1 に答える 1

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も'sはクリアされません)、とを使用して簡単に移動できることも意味しmc.xますmc.y

好奇心から、描いたときの色を設定できないのはなぜですか?

于 2012-07-04T17:19:14.727 に答える