いち。
// setTimeout(foo, 100); & private function foo():void{ Alert.show("time out!!"); }
で…
public function setTimeout(closure:Function, delay:Number, ... arguments):uint
という感じらしい。第二引数はミリ秒。closureに引数を渡す時は第三引数以降、って感じだよねぇ。
関数ポインタ(closure)の名前は、()付けるとエラるので注意。
戻り値は「ユニークなID」。何に使うのかというと…キャンセルする時。clearTimeout(id:uint)の引数に渡す。
ただ…
このメソッドを使用する代わりに、repeatCount パラメータを 1 (タイマーを 1 回のみ実行する設定) にして、指定した間隔で Timer オブジェクトを作成することを検討してください。
とかいう記述あり(ちなみにこの記述は、特定時間毎に実行される setInterval() にもある)。
さて…どう使うのか。
っつかわかりにくい orz
とりあえず…「アプリ全体で時間制御をする」時は、initなメソッド(ルートになるクラスの applicationComplete イベントのコールバック関数)で。
まず、initメソッドで
import flash.utils.Timer; import flash.events.TimerEvent; // 1000ミリセック(1秒)毎に、1回繰り返すインスタンス作成 var tim:Timer = new Timer(1000, 1); // タイマーがやってくる毎にfoo関数をコールバックするよう設定 tim.addEventListener(TimerEvent.TIMER, foo); // タイマーstart!! tim.start();
で。コールバック関数は
private function foo(e:TimerEvent):void{ Alert.show("time out!!"); }
ってな感じ。
引数忘れると怒られるので注意。
で…addEventListenerの第一引数。
TimerEvent.TIMERと書かれてたり"timer"と書かれてたりするですが、ドッチも一緒っつかTimerEvent.TIMERは定数っぽ。
この手のものは定数の方が「もぁ べたぁ」なので、定数記述する。
いぢょ。