AIR の開発に Flex Builder 3 を使ってるんだけど、VisualBasic みたいに Timer コンポーネントは無いのね。
一定時間毎に、グローバル変数の値をチェックして、内容が変化したら処理を行いたいのだが、そういう場合は Timer クラスを使った処理を手書きせんといかんのね。
Timer を使った一番単純な例だと、こんな感じ。
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication
xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
initialize="initProc();"><mx:Script>
<![CDATA[// タイマー処理開始
private function initProc():void {// 5秒毎に延々とイベント送出を続けるタイマーインスタンス
var timeCheck:Timer = new Timer(5000);
// 5秒経過毎に実行されるイベントを指定
timeCheck.addEventListener(TimerEvent.TIMER, onTick);
// タイマースタート(イベント発生待ち)
timeCheck.start();}
// 5秒経過イベント
public function onTick(event:TimerEvent):void {trace((event.target.currentCount * 5) + "秒経過");
}
]]>
</mx:Script></mx:WindowedApplication>
これの処理結果は、
5秒経過
10秒経過
15秒経過
20秒経過
...
のような表示が延々コンソールに出続ける。ちゃんと 5秒毎に TimerEvent.TIMER イベントが発生してるね!
「一定時間毎に、グローバル変数の値をチェック」したいのなら、onTick function のところに処理を記述する。
上の例だと無限にイベントが発生しているが、発生回数を制限したいのなら、タイマーインスタンスの生成時に、
var timeCheck:Timer = new Timer(5000, 5); // 5回まで
という具合に回数を指定してやれば良い。
簡単、簡単。
コメントする