我有以下代码:
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调度,但我在文档中找不到更多关于它的信息。
感谢。
答案 0 :(得分:1)
不,这不准确。时间切片是一个非常复杂的过程。
以下是一些资源:
在一个坚果壳中,归结为AVM试图在尽可能快地执行系统代码,用户代码和帧渲染之间徘徊,但需要决定哪个进程获得哪个优先级(以及后续处理)这些决定会影响计时器的准确性。有时是准确的,有时不是。
基本上,你投入的越多,得到的准确度就越低。