我使用帶有AS3的Flash CS4。 我想要一個定時器以50毫秒的間隔調用一個函數100次。然而,定時器比它應該花費的時間要長得多,在100次重複之後,這會增加到1677毫秒(1.677秒!)。我在這裏錯過了什麼,或者是不準確的計時器?Flash AS3定時器非常關閉
代碼
function test(event:TimerEvent):void{
trace("GetTimer(): " + getTimer() + " || Timer.currentCount: " + _timer.currentCount);
}
var _timer:Timer = new Timer(50, 100);
_timer.addEventListener(TimerEvent.TIMER, test);
_timer.start();
跟蹤輸出:
GetTimer():74 || Timer.currentCount:1
GetTimer():140 || Timer.currentCount:2
GetTimer():209 || Timer.currentCount:3
GetTimer():275 || Timer.currentCount:4
GetTimer():340 || Timer.currentCount:5
GetTimer():407 || Timer.currentCount:6
GetTimer():476 || Timer.currentCount:7
GetTimer():542 || Timer.currentCount:8
GetTimer():608 || Timer.currentCount:9
GetTimer():677 || Timer.currentCount:10
......
GetTimer():3340 || Timer.currentCount:50
......
GetTimer():6677 || Timer.currentCount:100
感謝您的幫助。
問候,
克里斯
getTimer()應使用非常精確是很重要的。 – 2010-10-21 20:13:45
@Muhammad Irfan - getTimer()不比一個Timer對象更精確。 – Allan 2010-10-21 22:51:08
@Allan - getTimer允許手動回調調用,而Timer可以在問題顯示時累積錯誤。 – alxx 2010-10-22 05:40:02