Top | Contents | Prev | Next
表示オブジェクトコンテナ

 表示オブジェクトコンテナは表示オブジェクトを格納する役割を持ちます。ステージの学習で説明していますが、ステージは表示オブジェクトコンテナです。このステージもSWFファイルをロードした時には表示オブジェクトと一緒にステージも表示されます。この事からステージも表示オブジェクトという事になります。ここで大事なのは表示オブジェクトにはコンテナとなり得るものとそうでないものがあるという事です。ここではその説明をします。

表示オブジェクトコンテナ
 ステージに格納した表示オブジェクトの中にはステージ同様にコンテナの役割を持つ事ができる表示オブジェクトがあります。例えばムービークリップはその1つですがムービークリップのコンテナに別の表示オブジェクトを格納する事が可能です。

 下の階層図は表示オブジェクトコンテナ(Stage)にMovieClipインスタンスを追加してその中に2つのインスタンス化した表示オブジェクトを追加しています。
階層

このようにMovieClipもステージ同様コンテナとなり得る表示オブジェクトの1つです。MovieClip の下には表示オブジェクト2つあります。この表示オブジェクトを子表示オブジェクトと呼びます。次にコンテナとなり得る表示オブジェクトの種類を紹介します。
コンテナとなり得る表示オブジェクト
 表示オブジェクトコンテナとなり得る表示オブジェクトはStage、MovieClip、Sprite です。下記で各表示オブジェクトを簡単に説明しています。使用方法はここで考える必要はありませんので各表示オブジェクトコンテナの特徴をつかんでください。

Stage
Stageは表示オブジェクトの基本コンテナであり、ここに表示オブジェクトやコンテナを追加します。
MovieClip
 MovieClipは独自のタイムラインを持った表示オブジェクトです。例えばシンボル作成時にシンボルタイプをムービークリップにしたものがこれにあたります。
Sprite

 ActionScript 3.0で新しく登場したSprite(スプライト)はタイムラインを必要としないオブジェクトで子表示オブジェクトを持たせたい場合に適しています。Sprite の特徴は以下の通りです。

  1. タイムラインを必要としないオブジェクトに適している。
  2. 子表示オブジェクトを持たせたい。
  3. マウスイベントがサポートされている。

 タイムラインが不要で表示オブジェクトを持たせる必要がなく、マウスイベントサポートも必要ない場合はSpriteではなくShape(シェイプ)を使用します。このShapeはオーサリングツールで作成した楕円、四角形などのベクターシェイプと同様のものです。上記で説明しましたがShapeはコンテナ機能は持つ事できないのでコンテナ機能を持たない表示オブジェクトです。

  基本的にMovieClipひとつだけ扱えばSprite、Shape の役割をはたしてくれますが、この様に扱う表示オブジェクトに合わせて使用する理由の1つとしてメモリの消費の問題が挙げられます。メモリの消費が多いほどコストパフォーマンスが低下し素早く動作させる事ができなくなります。例えばMovieClipはタイムラインを持つ事によりタイムラインを持たないSpriteやShapeよりもメモリを多く消費します。そしてSprite はコンテナやマウスイベントが必要ないShapeよりも重くなります。つまり必要最低限のものだけを使用してメモリの消費を防いでいるわけです。これはAcrionScript3.0が1.0、2.0 よりも高速に動く理由の1つです。
トップへ
Top | Contents | Prev | Next