読者です 読者をやめる 読者になる 読者になる

Flash制作講座フラッシュ制作講習

FLASH制作からActionScriptによるFlashコンテンツ制作のためのフラッシュ制作講座

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の初期化時点からの経過ミリ秒数のカウント