2010年6月2日水曜日

FlashのUI系コンポーネント調査

FlashのUI系のコンポーネントについて全く知識がないので、少し調査してみました。

クラス階層

Object
・言うまでもなく、あらゆるクラスのベースとなるクラス。特にUIであるかどうかとは無関係。
・パッケージはトップレベル。

flash.events.EventDispatcher
flash.events.IEventDispatcher の実装クラス。
・イベントを扱うための汎用的な機能を持つクラス。リスナーの追加削除とかイベントの送信とか。
・特にUIであるかどうかとは無関係。

flash.display.DisplayObject
・display list に配置されるすべてのオブジェクトのベースクラス。
・x,y,zとかalphaとかwidthとかvisibleとかマウス位置とか、表示されるものとしての基本機能を持っている。

flash.display.InteractiveObject
・表示されるオブジェクトでマウスやキーボードやその他の入力デバイスを扱うものすべての抽象クラス。
・このクラスはnewできないし、上記までのクラスもUIを作成するうえでプログラマが明示的に new することはなさそうです。

flash.display.DisplayObjectContainer
・display object の入れ物クラス。
・z 軸上に複数の display object を child として配置できる。
・このサブクラスには Loader, Sprite, Stage, TextLine があります。

flash.display.Loader
・java の ClassLoader のようなものを想像していると DisplayObjectContainer のサブクラスということに違和感を感じるが、実際は swf ファイルおよび画像ファイルをロードして表示するものなので、表示オブジェクトのローダーと言える。
・flex 用のサブクラスとして mx.core.FlexLoader があり、toString() メソッドが DisplayObjects の階層を表すようになっている。

flash.text.engine.TextLine
・display text 上に文字列を表示するためのオブジェクト。
・final クラスなので継承できないし、ユーザが直接 new することもできない。
・flash.text.engine 系のパッケージと関わらない限りは必要なさそう。

flash.display.Stage
・ブラウザ内なら flash の表示領域が Stage で、Airなら各 NativeWindow が Stage を持つ。

flash.display.Sprite
・UI 系の一般的なベースクラスで、MovieClip からtimelineを抜いたようなもの。

0 件のコメント:

コメントを投稿