Flex2
AdobeのWebアプリケーション開発ソフトウェア
FlashをベースにしたRIA(リッチインタフェースアプリケーション)を構築することができる。

-Adobe Flex2
–http://www.adobe.com/jp/products/flex/
Flex2/ActionScript3.0
階層
Flex2/ActionScript3.0/FlashPlayerへの表示
コア表示クラス
flash.display.*パッケージには、FlashPlayerに表示するためのオブジェクトクラスが定義されている。

図1:ActionScript3.0リファレンスマニュアルより
すべての基本クラスDisplayObject
DisplayObjectクラスには、すべての画面表示オブジェクトに共通するプロパティとメソッドが定義されている。
もっとも代表的なものに、配置座標を表すプロパティxとyがある。
すべてのビジュアルコンポーネントクラスは、flash.display.DisplayObjectを継承している。
DisplayObjectとコンテナ
前述のとおり、すべてのビジュアルコンポーネントはDisplayObjectクラスから派生している。
さらにその中で、DisplayObjectContainerクラスから派生しているクラスがある(図1を参照)。
これらのクラスを、コンテナという。
コンテナは、DisplayObjectクラスを管理するために定義されている。
例:Sprite(コンテナ)に対してTextField(ビジュアルコンポーネント)を追加
function Sample(){
// (略)
super.addChild(textField);
}
}
例:Sprite(コンテナ)に対してSprite(コンテナ)を追加
function Sample(){
// (略)
var sp:Sprite = new Sprite();
addChild(sp);
}
}
コンテナ上にコンテナを追加できることで、グリッドレイアウトや複雑な階層構造を容易に実現することができる。
DisplayObjectの操作
DisplayObjectの管理を行うコンテナ
コンテナは、追加されたDisplayObjectに対して順序を付けて管理している。
たとえばaddChildメソッドでコンポーネントを追加した場合、自動的に順序が振られる。
※配列のようなイメージ
イメージ
super.addChild(bitmap2)
super.addChild(bitmap3)
↓
コンテナ
[1]:bitmap2
[2]:bitmap3
コンテナに定義されているメソッド
-追加
–addChild(child:DisplayObject):DisplayObject
—DisplayObjectクラスのオブジェクトを追加する。
–addChildAt(child:DisplayObject, index:int):DisplayObject
—指定した位置にDisplayObjectクラスのオブジェクトを追加する。
-参照
–getChildAt(index:int):DisplayObject
—指定した位置のDisplayObjectクラスのオブジェクトを取得する。
–getChildByName(name:String):DisplayObject
—指定した名前のDisplayObjectクラスのオブジェクトを取得する。
–getChildIndex(child:DisplayObject):int
—指定したDisplayObjectクラスのオブジェクトが格納されている位置を取得する。
-削除
–removeChild(child:DisplayObject):DisplayObject
—指定したDisplayObjectクラスのオブジェクトを削除する。
–removeChildAt(index:int):DisplayObject
—指定した位置のDisplayObjectクラスのオブジェクトを削除する。
例:一度コンテナに追加したTextFieldをindex番号で取得して、プロパティを変更。
import flash.display.*;
import flash.text.*;
public class spr2 extends Sprite{
public function spr2(){
var textField:TextField = new TextField();
textField.text = "my name is rubber";
addChild(textField);
var displayObject:DisplayObject = getChildAt(0);
displayObject.x = 10;
displayObject.y = 10;
}
}
}
結果


