がるの健忘録

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

めも

いち。

  //
  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は定数っぽ。
この手のものは定数の方が「もぁ べたぁ」なので、定数記述する。


いぢょ。