我正在将Flash CS4与AS3配合使用。
我希望计时器以50毫秒的间隔调用一个函数100次。但是,计时器花费的时间远远超过了原本应花费的时间,在100次重复之后,这总计要花费1677毫秒(1.677秒!)。我在这里错过什么吗或计时器不正确吗?
代码
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
感谢帮助。
问候,
克里斯
最佳答案
请勿在如此短的间隔内使用Timer
。在Flash中计时不是简单的话题,请参阅this来开始。要测量50毫秒,我建议使用getTimer()
函数和ENTER_FRAME事件来检查时间间隔是否过去。
关于flash - Flash AS3计时器异常关闭,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3985751/