Flash 如何创建一个精确的计时器,匹配实时?
我在一个教育软件中工作,主要是使用Flash AS3开发的,我们有一个通过不同用户显示不同数值的计时器。 示例:两个用户同时启动计时器,但在使用几分钟后,它们的值不同 当前的实现使用Timer类,这导致了这种情况的发生,显然是由于每台计算机的平均速度不同 我已经有了一个想法,但我想提出一些理论上的建议。Flash 如何创建一个精确的计时器,匹配实时?,flash,actionscript-3,timer,chronometer,Flash,Actionscript 3,Timer,Chronometer,我在一个教育软件中工作,主要是使用Flash AS3开发的,我们有一个通过不同用户显示不同数值的计时器。 示例:两个用户同时启动计时器,但在使用几分钟后,它们的值不同 当前的实现使用Timer类,这导致了这种情况的发生,显然是由于每台计算机的平均速度不同 我已经有了一个想法,但我想提出一些理论上的建议。 提前感谢。计时器类不是很准确。从文档中: 根据SWF文件的帧率或运行时环境(可用内存和其他因素),运行时可能会以稍微偏移的间隔调度事件。例如,如果将SWF文件设置为以每秒10帧(fps)的速度播
提前感谢。计时器类不是很准确。从文档中: 根据SWF文件的帧率或运行时环境(可用内存和其他因素),运行时可能会以稍微偏移的间隔调度事件。例如,如果将SWF文件设置为以每秒10帧(fps)的速度播放,即以100毫秒的间隔播放,但将计时器设置为以80毫秒的间隔触发事件,则事件将在接近100毫秒的间隔时调度。内存密集型脚本也可能会抵消事件 如果要查找自应用程序启动以来的相对时间,请使用flash.utils.getTimer()
如果您想进行更复杂的计时,可以使用Date类 将Timer类与Date对象的使用结合起来。我的解决方案是在计时器启动时存储unix时间,然后使用计时器事件仅刷新并计算自计时器启动以来经过的毫秒数。