我正在将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/

10-09 06:05