我在一个教育软件中工作,主要是使用 Flash AS3 开发的,我们有一个计时器,它通过不同的用户显示不同的值。示例:两个用户同时启动计时器,但在使用几分钟后,他们的值不同。
当前的实现使用 Timer 类,导致这种情况发生,显然是由于每台计算机的平均速度不同。
我已经有了一个想法,但我想有一些理论上的建议。提前致谢。
我在一个教育软件中工作,主要是使用 Flash AS3 开发的,我们有一个计时器,它通过不同的用户显示不同的值。示例:两个用户同时启动计时器,但在使用几分钟后,他们的值不同。
当前的实现使用 Timer 类,导致这种情况发生,显然是由于每台计算机的平均速度不同。
我已经有了一个想法,但我想有一些理论上的建议。提前致谢。
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