イナヅマTVログ

ActionScript 3, Event処理を簡単に、SignalsでTimer

| 0件のコメント

AS3のループ処理TimerSignalsを使ってみる。

import org.osflash.signals.natives.NativeSignal;
import flash.utils.Timer;
import flash.events.TimerEvent;
 
var timer:Timer = new Timer(1000 * 0.5);
var loop:NativeSignal = new NativeSignal(timer,TimerEvent.TIMER);
loop.addWithPriority(onTimer, 9);
loop.add(onTimerSecond);
timer.start();
 
var n:int = 0;
 
function onTimer (e:TimerEvent):void {
	if (n++ > 3) {
		loop.removeAll();
		return;
	}
	trace(n);
}
function onTimerSecond (e:TimerEvent):void {
	trace('Second');
}

【メモ】
リスナーがNativeなEventを扱う場合は必ず引数が必要。
タイマーを止める時にはNativeSignalインスタンスからリスナーをremoveできる。

loop.removeAll();

一挙にリスナー群を削除できるのはかなり便利。
今回のようにリスナー側から削除命令を出す場合は、プライオリティーが一番高いリスナーにremoveAll();を仕込む。

コメントを残す

必須欄は * がついています


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください