2008/10/24 | 16:56 pm
クラス間のカスタムイベント
クラス間でのイベントのやり取りをするとき、
AS2.0だと BroadcasterMX を使ってましたけど、
ざらっと見た感じ、AS3.0だとそれ、無さそう。。。
そもそも名前が ****MX だもんね、
そりゃーないよね。。。
っで、AS3.0だと dispatchEvent が一番わかりやすそうで、
しっくり来そうな感じデス。
あと、Document Class を Singleton で作るってのも暇があれば試してみたい。
-
ドキュメントクラスをSingletonとして扱う : blog.nium.jp
ステージの参照とシングルトン : SCRATCHBRAIN.BLOG
-
とりあえず dispatchEvent の簡単な使い方を。
(以下は今回のTOP変更で使ったものの抜粋です)
Index.as
package {
import DisplacementEffect;
public class Index {
private var main:MovieClip;
private var effect:DisplacementEffect;
public function Index(main:MovieClip):void {
this.main = main;
effect = new DisplacementEffect();
init();
};
private function init():void {
effect.start();
effect.addEventListener(DisplacementEffect.EFFECT, onReturnHandler);
};
private function onReturnHandler(e:Event):void {
trace("Effect しゅーりょー");
};
};
};
DisplacementEffect.as
package {
public class DisplacementEffect extends Sprite {
public static const EFFECT:String = "****"; // ****は何でもOK
public function DisplacementEffect():void {
init();
};
private function init():void {
// ここで Effect の初期化
};
public function start():void {
// ここで Effect の動き
};
// 動きが終わったら呼ばれる function
private function stop():void {
dispatchEvent( new Event( EFFECT ) );
};
};
};
とすると、DisplacementEffect.as の stop() が呼ばれたすぐあとに、
trace(”Effect しゅーりょー”); が呼ばれます。
注意事項は、クラス間で EFFECT と名前付けたイベント名は全部共通にすること。
それと、このイベント名は任意だけど、頭文字は大文字じゃないとダメ。
ちゃんとコードまとめたら公開しよう。。。。
CATEGORY
POSTED
jam


COMMENT
0 Comment