【AS3】オブジェクト指向とイベントドリブン

今週、ちょいと分かりにくかった部分を先輩から
丁寧に教えてもらえたので、
忘れないように&理解促進の為のメモ。

なので間違いあるかも。
スクリプトベースで展開、構造考えていくときのつなぎの部分。

■■ A ■■
Aの終了時に”comp”を発行する
dispatchEvent(new Event(“comp”));

  ↓

■■ B ■■
B.addEventListener(“comp”, Handler);

Bではあらかじめ用意されたイベントリスナーで”comp”が来る準備してる
“comp”が来たらこれやる!みたいな準備ちう。

で、前もってカスタムイベントクラスを作る場合だと、、

public class MovieClipEvent extends Event {
static public const COMPLETE:String = “complete”;

//コンストラクタ
public function MovieClipEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false,x:int,y:int)
{
super(type, bubbles, cancelable);
}
とかイベントクラスを拡張して作っておいて、

■■ A ■■
Aが終了したら、MovieClipEvent.COMPLETEを発行して、
dispatchEvent(new MovieClipEvent(MovieClipEvent.COMPLETE));

  ↓

■■ B ■■
B.addEventListener(MovieClipEvent.COMPLETE, Handler);

Bでとる、と。
間にカスタムイベントクラス挟んでるから
Aの終了時に合わせて引数として情報、たとえば座標とかを渡してやって、
カスタムイベントクラス内のコンストラクタで座標を保持してやると
Bのイベントリスナーで受け取る(使う)ことも可能だ、と。

カスタムイベントクラス内でパラメータ(?)作っといて、
static public var _x:number;

//コンストラクタで設定する
public function MovieClipEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false,x:int,y:int)
{
super(type, bubbles, cancelable);
_x = x;
}

■■ A ■■
dispatchEvent(new MovieClipEvent(MovieClipEvent.COMPLETE),true,null,this.x,this.y);

  ↓

■■ B ■■
B.addEventListener(new MovieClipEvent(MovieClipEvent.COMPLETE), Handler);

Handler(e:Event):void
{ e.x = とかが使えるようになる!ということ。。かな?

実際に使ってみるのが一番の近道だなこりゃ。
でもだいたいクラスの概念はつかめてきた感じ。

勉強勉強。

you