我在教育软件中工作,主要使用Flash AS3开发,我们有一个计时器,通过不同的用户显示不同的值。 示例:两个用户同时启动计时器,但在使用几分钟后,它们具有不同的值。
当前实现使用Timer类,导致这种情况发生,显然是由于每台计算机的平均速度不同。
我已经有了一个想法,但我想提出一些理论建议。 提前谢谢。
答案 0 :(得分:2)
Timer类不是很准确。来自文档:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/utils/Timer.html
根据SWF文件的帧速率或运行时环境(可用内存和其他因素),运行时可能会以稍微偏移的间隔调度事件。例如,如果SWF文件设置为以每秒10帧(fps)播放(100毫秒间隔),但您的计时器设置为以80毫秒触发事件,则事件将在接近100毫秒间隔发送。内存密集型脚本也可以抵消事件。
如果您要查找自应用程序启动以来的相对时间,请使用flash.utils.getTimer()。 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/utils/package.html#getTimer%28%29
如果您想进行更复杂的计时,可以使用Date类。 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Date.html