Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash 如何创建一个精确的计时器,匹配实时?_Flash_Actionscript 3_Timer_Chronometer - Fatal编程技术网

Flash 如何创建一个精确的计时器,匹配实时?

Flash 如何创建一个精确的计时器,匹配实时?,flash,actionscript-3,timer,chronometer,Flash,Actionscript 3,Timer,Chronometer,我在一个教育软件中工作,主要是使用Flash AS3开发的,我们有一个通过不同用户显示不同数值的计时器。 示例:两个用户同时启动计时器,但在使用几分钟后,它们的值不同 当前的实现使用Timer类,这导致了这种情况的发生,显然是由于每台计算机的平均速度不同 我已经有了一个想法,但我想提出一些理论上的建议。 提前感谢。计时器类不是很准确。从文档中: 根据SWF文件的帧率或运行时环境(可用内存和其他因素),运行时可能会以稍微偏移的间隔调度事件。例如,如果将SWF文件设置为以每秒10帧(fps)的速度播

我在一个教育软件中工作,主要是使用Flash AS3开发的,我们有一个通过不同用户显示不同数值的计时器。 示例:两个用户同时启动计时器,但在使用几分钟后,它们的值不同

当前的实现使用Timer类,这导致了这种情况的发生,显然是由于每台计算机的平均速度不同

我已经有了一个想法,但我想提出一些理论上的建议。
提前感谢。

计时器类不是很准确。从文档中:

根据SWF文件的帧率或运行时环境(可用内存和其他因素),运行时可能会以稍微偏移的间隔调度事件。例如,如果将SWF文件设置为以每秒10帧(fps)的速度播放,即以100毫秒的间隔播放,但将计时器设置为以80毫秒的间隔触发事件,则事件将在接近100毫秒的间隔时调度。内存密集型脚本也可能会抵消事件

如果要查找自应用程序启动以来的相对时间,请使用flash.utils.getTimer()


如果您想进行更复杂的计时,可以使用Date类

将Timer类与Date对象的使用结合起来。我的解决方案是在计时器启动时存储unix时间,然后使用计时器事件仅刷新并计算自计时器启动以来经过的毫秒数。