as3表示オブジェクトについて

下記の例は、ステージ(実際にはステージに最初から登録されている MovieClip クラスのインスタンスであるメインタイムライン)に矩形を描いた Sprite クラスのインスタンス myRect を追加しています。
※mcもライブラリからドラッグしている時点で追加されている

var myRect:Sprite = new Sprite();
myRect.graphics.beginFill (0xFF0000);
myRect.graphics.drawRect (10,10,200,100);

addChild (myRect);

次の図は、上記のスクリプトを実行したときの表示リストの階層構造を表すイメージです。

表示リストからの削除

表示オブジェクトは表示リストに追加することで画面に表示されるようになります。逆に、表示リストから取り除くことで画面から見えなくすることができます。

表示リストから表示オブジェクトを取り除くには、 DisplayObjectContainer クラスの removeChild () メソッド を使用します。

次の例では、表示オブジェクトコンテナ container を作成し、、そのコンテナに myRect 、 myCircle の 2 つの子となる表示オブジェクトを追加します。
続いて、イベントリスナーを container オブジェクトに追加します。( 行 17 )
リスナー関数 onClickHandler() では、ユーザーがコンテナの子オブジェクトをクリックしたときに、そのクリックされた子をコンテナの表示リストから削除するよう定義されています。( 行 19 から 行 21 )

var container:Sprite = new Sprite();
addChild (container);

var myRect:Sprite = new Sprite();
myRect.graphics.beginFill (0x666666);
myRect.graphics.drawRect (200,10,120,60);
myRect.graphics.endFill ();

var myCircle:Sprite = new Sprite();
myCircle.graphics.beginFill (0xCCCCCC);
myCircle.graphics.drawCircle (310,60,30);
myCircle.graphics.endFill ();

container.addChild (myRect);
container.addChild (myCircle);

container.addEventListener (MouseEvent.CLICK, onClickHandler);

function onClickHandler (event:MouseEvent):void {
    container.removeChild (DisplayObject(event.target));
}

表示リストは、通常の変数と同様、表示オブジェクトを参照しているに過ぎません。 removeChild() メソッドを実行して表示リストから削除しても画面上から見えなくなるだけで、オブジェクトそのものが消えてしまうわけではありません。

実体は、他のオブジェクトと同様に delete 演算子を使用して削除する必要があります。