Timerクラスで時間制御Flash-AS3.0
AS2.0でもミリ秒などをカウント可能な関数がありましたが、指定した一定タイミングの間隔でアクションを制御する場合はTimer関数が推奨されるようです。
ミリ秒数をカウントする方法はいくつかありますが、今回タイマー機能についてはTimerクラスを使用します。
【記述例:60秒間、3秒ごとにイベント発生でメソッドを実行。終了後、完了メソッドを実行】
var actTimer:Timer=new Timer(3000,60);
// 時間間隔イベントおよび完了イベント用のリスナーを指定する
actTimer.addEventListener(TimerEvent.TIMER, doTimer);
actTimer.addEventListener(TimerEvent.TIMER_COMPLETE, stopTimer);
// タイマーのカウントを開始する
actTimer.start();
function doTimer(event:TimerEvent) {
実行ソース
}
// タイマーのカウントを停止する
function stopTimer(event:TimerEvent) {
//60秒後に実行する完了メソッド
actTimer.stop();
}
■Tiemerクラス以外のflash.utils パッケージに含まれるタイマー制御関数
ActionScript 3.0では、ActionScript 2.0 と同じタイマー制御関数があります。
パッケージレベル関数としてflash.utils パッケージに含まれ、ActionScript 2.0と同様の機能を持ちます。
・setInterval(closure:Function, delay:Number, ... arguments):uint
ミリ秒単位指定の間隔で関数実行
・setTimeout(closure:Function, delay:Number, ... arguments):uint
ミリ秒単位指定の遅延時間経過後に、指定関数の実行
・clearInterval(id:uint):void
指定のsetInterval()をキャンセル
・clearTimeout(id:uint):void
指定のsetTimeout()をキャンセル
・getTimer():int
Adobe Flash Playerの初期化時点からの経過ミリ秒数のカウント