表示リスト
AS3.0の解説を読んでいると、「表示リスト」「表示オブジェクト」「表示オブジェクトコンテナ」という言葉が出てくる。
表示オブジェクト
表示オブジェクトとは、どうやら目視できるインスタンスのことらしい。
例えば、音は見えないけど、映像は見ることが出来る。
なのでサウンドオブジェクトは表示オブジェクトではないが、ビデオオブジェクトは表示オブジェクトになる。
表示オブジェクトコンテナ
そして表示オブジェクトの中に複数の表示オブジェクトを作ることができる表示オブジェクトを「表示オブジェクトコンテナ」という。
つまり、ムービークリップの中には、ボタンやテキストや別のムービークリップを作成することができる。
このような表示オブジェクトを表示オブジェクトコンテナという。
container = 入れ物という意味なので、表示オブジェクトを入れる透明な箱と考えてもいいかも。
実際、MovieClipは画像などの表示オブジェクトがないと、addChild()で配置しても何も表示されないのだから。
表示リスト
表示リストだが、これがイマイチ掴めないんだなぁ。。。
ver mc:MovieClip = new MovieClip();
これでインスタンスを生成したけど、このmcを表示しようとおもったら、
addChild(mc);
これを書かないといけないんだけど、これは「表示リストに追加」したことになるらしい。
このmcに、ボタンインスタンス(btn)を配置するには、
mc.addChild(btn);
ということは、ステージ・スプライト・ムービークリップに配置する表示オブジェクトのリストってことなのかな。
<ぼやき>
というか、スプライトもよくわからないんだけどね。
ムービークリップのスーパークラスで、タイムラインが無いムービークリップのようなものらしいが、どんな場面で使うのかよくわからない。
今までだと、描画スクリプトやサウンドなどは、新規にムービークリップを作成してそれに含めたけど、これからはスプライトに書けってことなのだろうか。
単にグラフィックを配置するだけならタイムラインは必要ないものねぇ。。。
静止画じゃなくて、波打つサインカーブとか描きたい場合はどうなんだろう?
描画メソッドもGraphicsクラスに移っちゃって、わからん事だらけだ・・・
< /ぼやき>
スプライトは追々勉強するとして、次にどんなオブジェクトが表示オブジェクトとされるのかを見てみる。
「表示オブジェクト」になりうるクラスがflash.displayパッケージにまとめられている。
※テキストとビデオは含まれていない。下記の補足参照。
flash.displayパッケージ
意外なのはLoaderクラスが入っていることだけど、読み込まれた画像などの表示オブジェクトはLoaderクラスの子として扱うからかな。
さて、注目すべきはこの中の「DisplayObject」と「DisplayObjectContainer」
DisplayObjectContainer
このページのサブクラスが、表示オブジェクトコンテナとなるクラス。
DisplayObject
このページのサブクラスが、表示リストに追加できる表示オブジェクトとなるクラス。
ということで、表示リストの構造をまとめてみる。
こうやって書いてみると、表示リストってのはライブラリのようなモノなのかな?と思う。
表示オブジェクトが、どこに配置されているかを管理するためのものといったところか。
【補足】
テキストやビデオはFlash.displayパッケージに含まれていないのだが”テキストはテキスト用のパッケージに、ビデオはマルチメディア用のパッケージに入れたから”というのが含まれていない理由だと思う。
でも、TextFieldクラスやVideoクラスは、DisplayObjectクラスを継承しているので表示オブジェクトとなる。