表示オブジェクト(DisplayObject)のクラス構造
DisplayObjectのクラス継承関係
Actionscriptでは組み込み型以外はすべてObjectクラスを継承しています。グラフィクスを描くためのSpriteやMovieClipクラスや画像を表示するためのBitmapクラスなど、基本的に表示するものは全てDisplayObjectを継承しています。
|
|
DisplayObjectのメンバ
DisplayObjectでは座標やサイズなど"表示する"ための根本的なプロパティが用意されています。
DisplayObjectを直接インスタンス化することはできないので、派生クラスであるSpriteクラスなどをインスタンス化して利用します。
var obj:Sprite = new Sprite();
x,y:int 座標
obj.x = 100; obj.y = 100;
width,height:int サイズ
サイズの値を変えるとスケールも変わります。
obj.width = 100; obj.height = 100;
scaleX,scaleY:Number スケール
obj.scaleX = 0.7; obj.scaleY = 0.7;
alpha:Number α値
0.0〜1.0で指定します。
obj.alpha = 0.7;
rotation:Number 回転
°で指定します
obj.rotation = 30;
mouseX,mouseY:int マウス座標
読み取り専用
parent:DisplayObject
親DisplayObjectです。戻り値はDisplayObjectContainerクラスです。これで自分がどのDisplayObjectに含まれているのか確認することができます。
trace(obj.parent)
getBounds(target:DisplayObject):Rectangle
target座標を基準としてこのDisplayObjectの境界である矩形を返します。
trace(obj.getBounds(obj)) trace(obj.getBounds(obj.parent))
DisplayObjectが送出するイベント
利用できるイベントは大きく分けて次の2つです。
DisplayObjectが表示リストに追加・削除された場合のイベント:
- added,addedToStage
- removed,removedFromStage
フレーム開始終了時のイベント:
- enterFrame,exitFrame
InteractiveDisplayObject
DisplayObjectに対してマウスなどインタタラクティブな機能を追加したクラスです。例えば、ダブルクリックやマウスイベントを受け付けるかどうかを設定するdoubleClickEnabledやmouseEnabledプロパティなどが追加されています。DisplayObjectに加えて、フォーカス、キー、マウス、ドラッグジェスチャなど数多くのイベントが基本的にはここで追加されています。
focusOut,focusIn,keyDown, keyUp, mouseDown, mouseOut,mouseWheel...など。
DisplayObjectContainer
DisplayObjectは一つのレイヤーで、その中にもいくつもレイヤーを重ねることができます。DisplayObjectをリストとして持つクラスとして定義したものがDisplayObjectContainerになります。DisplayObject自身がDisplayObjectをいくつも持つことができるように自分自身の派生クラスとして定義されています。
DisplayObjectContainerのメンバ
階層構造に関するメンバがここで定義されています。
追加、削除、取得、入れ替えなどのメソッドそれぞれに対してインスタンスかインデックスを指定できるものが提供されています。
DisplayObjectをリストに追加する
- addChild(child:DisplayObject):DisplayObject
- addChildAt(child:DisplayObject, index:int):DisplayObject
DisplayObjectをリストから削除する
- removeChild(child:DisplayObject):DisplayObject
- removeChildAt(index:int):DisplayObject
DisplayObjectをリストから取得する
リストの要素の入れ替え
- swapChildren(child1:DisplayObject, child2:DisplayObject):void
- swapChildrenAt(index1:int, index2:int):void
Spriteクラス
ここで初めてグラフィクスを描くための機能が追加されます。
- buttonMode : Boolean
trueの場合はこのSpriteをボタンにすることができます。
- graphics:Graphics
グラフィクスのためのプロパティです。graphicsプロパティを通して丸や直線などを描画することができます。
- startDrag(lockCenter:Boolean = false, bounds:Rectangle = null):void
- stopDrag():void
このSpriteをドラッグできるようにするためのメソッドです。stopDragとセットで使います。
MovieClipクラス
MovieClipはSpriteにさらにタイムラインを追加したものです。動画の再生に関するメンバ、ヘッドの制御に関わるメンバがここで追加されています。
再生・停止
- play():void
- stop():void
指定位置で再生・停止
- gotoAndPlay(frame:Object, scene:String = null):void
- gotoAndStop(frame:Object, scene:String = null):void
再生ヘッドの移動
- nextFrame():void
- nextScene():void
- prevFrame():void
- prevScene():void
Stageクラス
Stageクラスはメインの描画領域全体(ベースレイヤー)を表しており、Spriteと同様にDisplayObjectContainerを継承しています。アプリケーション内に一つだけ存在するので新たに作成することはできません。ブラウザでのalign指定やFlashPlayerで再生した際の設定項目などが主なメンバとなっています。