HAKUHIN's home page
更新履歴
 
 

 

Timer クラスについて
 


■Timer クラスについて

Timer クラスを使用すると、好きな時間隔登録した関数を実行することができます。
 
フレームレートとは違う時間隔で実行する事も可能です。
 
Timer は指定したタイミングが来ると同期的に関数が呼び出されます。
 
処理落ちが発生すると次のタイマーの関数実行も遅れます。 また、呼び出される関数内で無限ループ処理を作ってしまうと全体の処理も停止します。
 
 



Timer クラスを使用する
 

サンプルをダウンロード
 


1.Timerクラスをインスタンス化する

まず、Timer クラスをインスタンス化します。
 
第01引数には、「関数を繰り返し呼び出す」時間隔をミリ秒で指定します。
第02引数には、繰り返す実行回数を指定します。0 を指定した場合、永遠に呼び出されます。
 
100ミリ秒間隔で呼び出される Timer オブジェクトを作成する

// タイマーオブジェクトを作成
var timer : Timer = new Timer(100,0);
 
3 秒後に 1 度だけ呼び出される Timer オブジェクトを作成する

// タイマーオブジェクトを作成
var timer : Timer = new Timer(3000,1);
 
2.関数を登録する

Timer クラスは、TimerEvent.TIMER イベントと TimerEvent.TIMER_COMPLETE イベントに対応しています。

TIMER イベントは、指定した時間隔で毎回呼び出されます。
 
TIMER_COMPLETE イベントは、指定した回数をすべて消化したときに1度だけ呼び出されます。
 
タイマーに関数を登録する

// タイマーオブジェクトを作成
var timer:Timer = new Timer(1000,10);

// 指定した時間隔で呼び出されるイベント
timer.addEventListener(TimerEvent.TIMER,function(e:TimerEvent):void{
	trace("タイマー");
});

// 指定した回数をすべて消化したときに呼び出されるイベント
timer.addEventListener(TimerEvent.TIMER_COMPLETE,function(e:TimerEvent):void{
	trace("タイマーが終了した");
});
 
3.タイマーを開始する

start() メソッドを呼び出すとタイマーを開始します。
 
タイマーを開始する

// タイマーオブジェクトを作成
var timer:Timer = new Timer(1000,10);

// 指定した時間隔で呼び出されるイベント
timer.addEventListener(TimerEvent.TIMER,function(e:TimerEvent):void{
	trace("TIMER:");
});

// 指定した回数をすべて消化したときに呼び出されるイベント
timer.addEventListener(TimerEvent.TIMER_COMPLETE,function(e:TimerEvent):void{
	trace("TIMER_COMPLETE:");
});

// タイマー開始
timer.start();
 
4.タイマーを終了する

タイマーを途中で終了したい場合は、stop() メソッドを呼び出します。
 
停止したとき、「タイマーに登録した関数」の実行カウント数はそのまま維持されます。
 
画面をクリックされたらタイマーを停止する

// タイマーオブジェクトを作成
var timer:Timer = new Timer(1000,10);

// 指定した時間隔で呼び出されるイベント
timer.addEventListener(TimerEvent.TIMER,function(e:TimerEvent):void{
	trace("TIMER:");
});

// 指定した回数をすべて消化したときに呼び出されるイベント
timer.addEventListener(TimerEvent.TIMER_COMPLETE,function(e:TimerEvent):void{
	trace("TIMER_COMPLETE:");
});

// タイマー開始
timer.start();

// マウスがダウンされたときに呼び出されるイベント
stage.addEventListener(MouseEvent.MOUSE_DOWN,function(e:MouseEvent):void{
	// タイマー停止
	timer.stop();
});
 



■タイマー内の変更を描画に反映する

タイマー内で変更した内容をすぐに描画に反映させたい場合、引数から渡される TimerEvent オブジェクトの updateAfterEvent() メソッドを呼び出します。
 
タイマー内の処理結果を描画に反映する

// タイマーオブジェクトを作成
var timer:Timer = new Timer(1000,10);

// 指定した時間隔で呼び出されるイベント
timer.addEventListener(TimerEvent.TIMER,function(e:TimerEvent):void{

	// 適当に描画
	var g : Graphics = stage.graphics;
	g.clear();

	// 描画を更新
	e.updateAfterEvent();
});
 
■タイマーに登録した関数の実行回数を取得する

「タイマーに登録した関数」が何回繰り返し実行されたかを取得するには、currentCount プロパティを使用します。
 
終了とする実行回数を取得するには、repeatCount プロパティを使用します。
 
タイマーの実行回数を取得する

// タイマーオブジェクトを作成
var timer:Timer = new Timer(1000,10);

// 指定した時間隔で呼び出されるイベント
timer.addEventListener(TimerEvent.TIMER,function(e:TimerEvent):void{

	trace("タイマー: " + timer.currentCount + " / " + timer.repeatCount);

});

// タイマー開始
timer.start();
 
タイマーに登録した関数の実行回数をリセットする

「タイマーに登録した関数」の実行回数を 0 に戻したい場合は、reset() メソッドを呼び出します。このメソッドを呼び出すと タイマーが停止します。
 
画面をクリックされたらタイマーカウントをリセットする

var timer:Timer = new Timer(1000,10);

// 指定した時間隔で呼び出されるイベント
timer.addEventListener(TimerEvent.TIMER,function(e:TimerEvent):void{

	trace("タイマー: " + timer.currentCount + " / " + timer.repeatCount);

});

// マウスがダウンされたときに呼び出されるイベント
stage.addEventListener(MouseEvent.MOUSE_DOWN,function(e:MouseEvent):void{

	// タイマーのカウントをリセット
	timer.reset();
	
	// タイマー開始
	timer.start();
});
 
 



HAKUHIN's home page バナー http://hakuhin.jp/
(c) Hakuhin & 日新礼符 2002-2011 解像度1024×768以上 IE8.0以上推奨
/ 閲覧中: