表示の概念
コア表示クラスと継承
前回はActionScript 3.0の概要を中心に解説しました。今回は、Flashの根幹ともいるコア表示クラスについて紹介します。コア表示クラスとは、Flash Playerで表示できるビジュアルオブジェクトのクラスであり、主にflash.displayパッケージに含まれているDisplayObjectクラスを継承したサブクラスのことをいいます(一部、staticText、TextField、およびVideoはflash.displayに含まれないクラスですが、DisplayObjectクラスを継承しています)。
継承とは、既存のクラスを元に新しいクラスを開発する手法のことで、既存のクラスを"スーパークラス"または"基本クラス"と呼びます。反対に、新しく継承するクラスのことを"サブクラス"と呼びます。継承を使うことで、既存のコードを維持したまま、コードの再利用が可能になります。例えば、MovieClipのx座標やy座標を参照するにはxプロパティやyプロパティを使用しますが、MovieClipクラスには直接xやyといったプロパティがあるわけではなく、MovieClipクラスがDisplayObjectクラスを間接的に継承しているからです。
間接的に継承しているのは、MovieClipクラス自体は直接DisplayObjectクラスを継承していないからです。MoviClipクラスが直接継承しているのはSpriteクラスで、SpriteクラスはDisplayObjeCtcontainerクラスを、DisplayObjeCtcontainerクラスはinteractiveObjectを継承し、そしてinteractiveObjectがDisplayObjectを継承している形になっています。これらのツリー構造は図1を参照ください。
表示リストと表示オブジェクトコンテナ
前回のサンプルでも取り上げましたが、ActionScript 3.0は、FlashPlayerに表示するために表示オブジェクトを表示リストに追加する必要があります。
なお表示リストに追加できるのはDisPlayObjectを継承したクラスのから生成されたオブジェクトのインスタンス、つまり、表示オブジェクトです。勘違いしやすいところではありますが、これらが生成された時点は、FlashPlayerでは表示こそされませんが、メモリーにはデータとして蓄積されています。つまり、画面に表示されていないからといって、オブジェクトそのものが消滅したわけではないということを、頭に入れておく必要があります。
そもそも、表示リストとはなんでしょう?
表示リストとはStageを最上位とするツリー構造で成立している、表示オブジェクト同士を管理するための概念です。Flashでは最初からStageと、ひとつのメインクラスとして存在している表示オブジェクトコンテナがそのリストに追加されています。ここでいうメインクラスとは、メインルートそのものになります。
表示オブジェクトコンテナとは、表示オブジェクトを内包することができる表示オブジェクトのことをいいます。表示オブジェクトコンテナになりうるクラスは、MovieClip、SpriteそしてStageです。