Timerクラスの正確さについて

ActionScript3.0にはTimerクラスが追加され、従来のsetIntervalの代わりに使うことが想定されていますが、あんまり過信するほど正確ではありませんよというお話をBIT-101さんがエントリされています。

といっても、Timerクラス自身はきちんと1000ミリ秒(1秒)間隔で実行されまが、そこに、Timerをトリガーとして実行される関数の処理時間が関わってきます。

通常のプロジェクトで使うような関数なら、0.0何秒の誤差なので許容範囲なのですが、BIT-101さんの記事中のサンプルのように、100万回forループとかの付加の大きい処理を間で実行すると、1.6秒間隔になり、0.6秒もの誤差が生じます。

Timer自身は、きちんと1000ミリ秒で実行されていますが、1000ミリ秒後に実行されるforループの処理に600ミリ秒かかり、次にTimerがカウントを開始するのは、そのループ終了後(1600ミリ秒後)になるからです。

僕としては、まぁそんなに負荷のかかる処理はめったにしないだろうし、それよりはTimerクラスの利便性に感動して使いまくる予感がしています。
一方、ものすごく正確な時間測定が必要な案件の場合は、BIT-101さんが書いた「Making Things Move!」の最後の方に書かれている「onEnterFrameベースのカウント処理」の方が良いですよと仰られてます。ちなみに「Making Things Move!」のActionScript3.0版の執筆も終えられたそうで、2007年早々に発売されるそうです。Amazon.co.jpでの予約受付も始まっていますね。

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://www.trick7.com/blog/2006/11/30-115701.php/trackback
Listed below are links to weblogs that reference
Timerクラスの正確さについて from trick7
AS3習得本
AS3の全容を学習できる本。この中でどれか1冊自分に合ったものを。
Adobe Flash CS4 詳細!ActionScript3.0入門ノート ActionScript3.0 プロフェッショナルガイド 初めてのActionScript 3.0 Flashユーザーのためのステップアップガイド 詳説 ActionScript 3.0 Actionscript 3.0 Cookbook
AS3発展本
ASでアニメーションさせる面白さを知るための本。
Flash Math & Physics Design:ActionScript 3.0による数学・物理学表現[入門編] ActionScript 3.0 アニメーション AdvancED ActionScript 3.0 Animation (Advanced)
AS2
"Flash"ではなく"ActionScript2.0"学習のための良著。他にもいろいろ読んだけど、この4冊を読んだ後、自分が成長できた感じがしました。
FLASH ActionScript 2.0入門完全ガイド+実践サンプル集 [CD-ROM付] Essential Actionscript 2.0 Flash 8 Essentials Foundation Actionscript Animation: Making Things Move (Foundation)

あわせて読みたいブログパーツ

Return to page top