AS3になってタイマーが登場したけど、設定した間隔で正確に処理を実行しているものだと思ってた。
しかし、タイマーが実行する関数内で時間のかかる処理を行った場合、その処理が終わったタイミングから設定した時間後に次の処理が行われるようです。
つまり、
timer:Timer = new Timer(1000, 0); timer.addEventListener(TimerEvent.TIMER, _timerAction); timer.start();として実行すると、最初の一回目は1000ミリ秒で実行されるが、_timerAction内の処理に600ミリ秒かかると次の実行は1600ミリ秒後になってしまうということ。設定した間隔に対して正確に実行することはできないので、アニメーションであればenterFrame内で経過時間から処理すべき数値を計算すれば良いようですね。
を参考にさせていただきました。
しかし、trick7さんのエントリーの日付は2006年11月...
自分は一年半ぐらい遅れてるんですね。。
もっと頑張らなくては。。。

Leave a comment