- 2006-11-30 (木)
- action script
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での予約受付も始まっていますね。
- Newer: Apple Wireless Keyboardの接続が切れる
- Older: Flashで筆順再生2:色とブラシサイズ
Comment:0
Trackback:0
- TrackBack URL for this entry
- http://www.trick7.com/blog/mt-tb.cgi/403
- Listed below are links to weblogs that reference
- Timerクラスの正確さについて from trick7.com blog




