定时器是否足够准确,以便在延迟后不发送TimerEvent.TIMER事件?

时间:2013-06-16 08:53:14

标签: actionscript-3 flash flex timer

我有以下代码:

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

是否可以保证TimerEvent.TIMER将在3000ms延迟之前或完全在3000ms延迟(不是3010,3050等)发送?

我的测试显示TimerEvent.TIMER总是在'delay'ms之前或恰好在'delay'ms调度,但我在文档中找不到更多关于它的信息。

感谢。

1 个答案:

答案 0 :(得分:1)

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

以下是一些资源:

在一个坚果壳中,归结为AVM试图在尽可能快地执行系统代码,用户代码和帧渲染之间徘徊,但需要决定哪个进程获得哪个优先级(以及后续处理)这些决定会影响计时器的准确性。有时是准确的,有时不是。

基本上,你投入的越多,得到的准确度就越低。