3

ここではかなり基本的な質問ですが、それでも少し混乱しました..

コードで色を変更したいオブジェクト (ナビゲーション メニュー バー) があるので、updateColor関数でオブジェクトの境界 (ムービークリップに含まれる描画形状) を取得し、その上に新しい形状を再描画します。新しい色でそれを削除しましたが、この再描画の背後に最後の形状がまだ存在していることに気付きました.

再描画の前に使用してみobj.graphics.clear();ましたが、元の形状が取り除かれませんでした。私が見落としている別のコマンドはありますか?

4

2 に答える 2

1

同じグラフィックス オブジェクト内で削除したいオブジェクトを描画しない限り、クリアは機能しません。DisplayObject を削除する必要があります。

あなたができる子供の数に応じて:

obj.removeChildAt(0);

これにより、手動でステージに配置したムービークリップ/ボタンも削除されます。削除したい DisplayObject への参照がある場合は、簡単に実行できます

obj.removeChild(backgroundClip);

DisplayObject の色を直接変更することもできます。

import flash.geom.ColorTransform;
...
public var test:MovieClip; //instance on stage
...

var cf:ColorTransform = test.transform.colorTransform;
cf.color = 0xff0000;
test.transform.colorTransform =  cf;
于 2009-11-17T22:27:57.807 に答える
0
while(this.numChildren)
{
   this.removeChildAt(0);
}

このMovieClipの子オブジェクトをクリアします。クリアしすぎる場合は、図形の描画をサブクリップに入れ、サブクリップをクリアします。

于 2009-12-02T06:21:45.470 に答える