我正在使用AS3,Flash AIR 3.2 for iOS SDK。我只是在myLoader
完成图片加载后才尝试运行部分程序。我有myTimer.start();
在myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaderComplete);
内运行。
目前似乎问题是程序忽略了1000毫秒。程序在<{1}}完成之后正在运行,但它似乎在延迟方面做了自己的事情。
编辑:这里更精确......程序似乎忽略了Timer延迟。即使Timer设置为100000ms。它似乎是在加载图像后立即运行程序的其余部分。
编辑:我仍然在我的Main()中运行我的方法以及代码中的timerListener()。以为我评论了他们。糟糕!
myLoader
答案 0 :(得分:2)
你并没有真正澄清你的意思是“计时器在做自己的事情。”计时器是短于还是长于你期望的?
我认为这里可能发生的是你的计时器滴答和你的帧速率不同步。如果您熟悉elastic racetrack的概念,您就知道Flash的单线程特性(除非您使用工作线程)意味着屏幕在脚本期间无法更新,反之亦然。这意味着如果您的Timer在显示列表更新时触发,它只需要等到显示列表完成,甚至可能必须等到其他脚本运行,这取决于Flash如何优先处理其队列中的不同内容。 / p>
来自Timer API:
取决于SWF文件的帧速率或运行时环境 (可用内存和其他因素),运行时可能会调度事件 略微偏移的间隔。例如,如果SWF文件设置为 以每秒10帧(fps)的速度播放,即100毫秒 间隔,但您的计时器设置为以80毫秒触发事件, 该事件将以接近100毫秒的间隔发送。 内存密集型脚本也可以抵消事件。