Flex2

1月 1, 2003 · Posted in Flex2 · Comment 

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

-Adobe Flex2
http://www.adobe.com/jp/products/flex/

Flex2/ActionScript3.0

1月 1, 2003 · Posted in Flex2 · Comment 

階層

Flex2/ActionScript3.0/FlashPlayerへの表示

1月 1, 2003 · Posted in ActionScript3.0, Flex2 · Comment 

コア表示クラス

flash.display.*パッケージには、FlashPlayerに表示するためのオブジェクトクラスが定義されている。


図1:ActionScript3.0リファレンスマニュアルより

すべての基本クラスDisplayObject

DisplayObjectクラスには、すべての画面表示オブジェクトに共通するプロパティとメソッドが定義されている。
もっとも代表的なものに、配置座標を表すプロパティxとyがある。
すべてのビジュアルコンポーネントクラスは、flash.display.DisplayObjectを継承している。

DisplayObjectとコンテナ

前述のとおり、すべてのビジュアルコンポーネントはDisplayObjectクラスから派生している。
さらにその中で、DisplayObjectContainerクラスから派生しているクラスがある(図1を参照)。
これらのクラスを、コンテナという。
コンテナは、DisplayObjectクラスを管理するために定義されている。

例:Sprite(コンテナ)に対してTextField(ビジュアルコンポーネント)を追加

class Sample extends Sprite{
function Sample(){
// (略)
super.addChild(textField);
}
}

例:Sprite(コンテナ)に対してSprite(コンテナ)を追加

class Sample extends Sprite{
function Sample(){
// (略)
var sp:Sprite = new Sprite();
addChild(sp);
}
}

コンテナ上にコンテナを追加できることで、グリッドレイアウトや複雑な階層構造を容易に実現することができる。

DisplayObjectの操作

DisplayObjectの管理を行うコンテナ

コンテナは、追加されたDisplayObjectに対して順序を付けて管理している。
たとえばaddChildメソッドでコンポーネントを追加した場合、自動的に順序が振られる。
※配列のようなイメージ

イメージ

super.addChild(bitmap1)
super.addChild(bitmap2)
super.addChild(bitmap3)

コンテナ

[0]:bitmap1
[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番号で取得して、プロパティを変更。

package{
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;
}
}
}

結果

次ページへ »