次は、InteractieObject のサブクラスで「コンテナ」機能が追加された抽象クラスです。
DisplayObjectContainer クラス
DisplayObjectContainer クラス(livedocs@lab)は、その名のとおり DisplayObject のコンテナ、つまり他の DisplayObject を子オブジェクトとして持つことの出来るクラスです。一方 DisplayObjectContainer 自身も DisplayObject ですから子オブジェクトになることができます。つまり DisplayObject のツリー構造を作ることが出来ます。(末端ノード以外は DiplayObjectContainer である必要があります) Flash の経験者であれば MovieClip が入れ子になっているものをイメージするとよいでしょう。
このように、DisplayObectContainer は画面に表示されたオブジェクトをまとめて管理するのに使われます。DisplayObjectContainer (およびそのサブクラス)が子オブジェクトを管理する仕組みをディスプレイリストと呼んでいます。
DisplayObjectContainer に子オブジェクトを追加/削除するには、それぞれ以下のメソッドを使います。
public addChild(child:DisplayObject) : DisplayObject public removeChild(child:DisplayObject) : DisplayObject
この際、後に追加されたものほど上に表示されます。子オブジェクトはインデックスで管理され、インデックス 0 が最背面のオブジェクトになります。addChild メソッドは子オブジェクトを追加する際、そのオブジェクトのインデックスが最大値になるように設定する訳です。追加された子オブジェクトからは DisplayObject.parent で親のコンテナを参照することができます。
任意のインデックスに子オブジェクトを追加したい場合には、以下のメソッドを使います。
public addChildAt(child:DisplayObject, index:int) : DisplayObject
また、次のメソッドを使うと既存の子オブジェクトのインデックスを変更することが出来ます。
public setChildIndex(child:DisplayObject, index:int) : Void
AS1/2 とは違い、表示の重なりの制御に depth を使用しなくなりました。
コメントする