4 月
5
2010
カスタムイベント
自分でイベントを発行して、addEventListener で登録した関数で受けたいって時の仕掛けについて。
以下は、1秒後に完了するタイマー。
完了すると、イベントを発行する。
package {
import flash.events.*;
import flash.display.*;
public class EvClass extendsEventDispatcher {
public static const COMPLETE:String = "EvComplete"; // 適当に設定
// コンストラクタ
function EvClass() {
var timer:Timer = new Timer(100,10); // 0.1秒を10回繰り返し
timer.addEventListener( TimerEvent.TIMER, // タイマーの周期処理
function(){ // 適当な処理 }
);
timer.addEventListener( TimerEvent.TIMER_COMPLETE, // タイマー完了時処理
function(){
dispatchEvent(new Event(COMPLETE)); // イベント発行
}
);
timer.start(); // タイマー開始
}
}
}
EvClass を受ける側のソース。
イベントが発行されたら、onComplete 関数で受ける。
var evsample:EvClass = new EvClass();
evsample.addEventListener(EvClass.COMPLETE, onComplete);
function onComplete(e:Event):void{
trace("Complete");
}