0

我有以下代码:

var timer:Timer = new Timer(3000, 1);
timer.addEventListener(TimerEvent.TIMER, someListener);
timer.start();

是否保证 TimerEvent.TIMER 将在 3000 毫秒延迟之前或恰好在 3000 毫秒延迟(不是 3010、3050 等)之前调度?

我的测试表明 TimerEvent.TIMER 总是在“延迟”毫秒之前或恰好在“延迟”毫秒之前发送,但我在文档中找不到更多信息。

谢谢。

4

1 回答 1

1

不,这不准确。时间切片是一个非常复杂的过程。

这里有一些资源:

简而言之,AVM 试图尽可能快地在执行系统代码、用户代码和帧渲染之间进行权衡,但需要决定哪个进程获得哪个优先级(以及后续处理时间)和正是这些决定会影响计时器的准确性。即有时准确,有时不准确。

基本上,你扔得越多,它就越不准确。

于 2013-06-16T09:50:52.163 回答