表示リスト > 概要

概要

フレームの表示プロセスは次のような 3 段階のステップに分けられます。

  1. 定義タグによって定義された DefineShape, DefineSprite のようなオブジェクトは、それぞれ キャラクタ と呼ばれるユニーク ID が割り振られ、 ディクショナリ と呼ばれるリポジトリに保存されます。
  2. 選択されたキャラクタの列がディクショナリからコピーされ、表示リスト に配置されます。これらのキャラクタの配列は次のフレームで画面に表示されます。
  3. 表示リストのコンテンツは、 ShowFrame タグの出現時に画面にレンダリングされます。

表示リスト上のそれぞれのキャラクタには 深度 (depth) の値が割り振られます。 この深度の値は、キャラクタのスタック順を決定します。 深度の値の小さいキャラクタは、値の大きいキャラクタの下に表示されます。 深度 1 のキャラクタは、スタックの一番下に配置されます。 1 つのキャラクタをいくつも同時に表示することもできますが、それぞれに違う深度が割り当てられます。キャラクタはそれぞれ、1 つだけの深度値を持つことができます。

SWF 1, 2 では、表示リストはフラットなリストで、1 度にスクリーンに 1 つだけ存在していました。 SWF 3 以降のバージョンでは、表示リストは階層的な構造に変更され、画面上のそれぞれのエレメントが、子エレメントのリストを持つようになりました。より詳しい内容は DefineSprite タグの項目をご覧ください。

次の 6 つのタグは、表示リストを制御するために使われます。

  • PlaceObject 表示リストにキャラクタを追加します。
  • PlaceObject2 と PlaceObject3 キャラクタを表示リストに追加するか、もしくは指定された深度にあるキャラクタを変更します。
  • RemoveObject 指定されたキャラクタを表示リストから削除します。
  • RemoveObject2 指定された深度のキャラクタを削除します。
  • ShowFrame 表示リストのコンテンツを画面に表示します。
(注)
SWF 3 以降では、 PlaceObject と RemoveObject は古いタグなので滅多に使用されません。

次の図は、表示プロセスを表しています。 最初に、シェイプ、テキスト、スプライトの 3 つのオブジェクトが定義されています。 これらのオブジェクトはキャラクタ ID が与えられ、ディクショナリに保存されます。 キャラクタ 1 (シェイプ) は、スタックの一番下の深度 1 に配置され、他の全てのキャラクタの後ろに描かれます。 キャラクタ 2 (テキスト) は、深度 2 と深度 4 (スタックの一番上) の 2 回配置されます。 キャラクタ 3 (スプライト) は、深度 3 に配置されます。

移動

最終更新:2017年02月20日 20:53
添付ファイル