据我所知,getTimer()
是非常不准确的 - 在我自己的机器上它总是返回一个约为16的乘积。 (16,33,50等)准确测量时间增量
有没有简单而有效的方法来更准确地测量我的程序中两个独立调用之间的时差(增量)?
我已经查找了关于这个主题的信息,但是我发现的大部分内容似乎没有必要的详细说明。
据我所知,getTimer()
是非常不准确的 - 在我自己的机器上它总是返回一个约为16的乘积。 (16,33,50等)准确测量时间增量
有没有简单而有效的方法来更准确地测量我的程序中两个独立调用之间的时差(增量)?
我已经查找了关于这个主题的信息,但是我发现的大部分内容似乎没有必要的详细说明。
编辑:
进一步挖掘,并在同事的帮助下,显然你可以通过使用声音获得良好的时间。尝试创建一个新的Sound
对象,播放它,然后从返回的SoundChannel
对象中提取position
属性。也有一些很好的想法在这里:Stack Overflow - Accurate BPM event listener in AS3
我还没有尝试过,但你可以尝试使用
要计算相对时间或经过的时间,请参阅flash.utils包中的getTimer()方法。Date
类,并从中提取
milliseconds
财产,并使用它。我不确定这与getTimer相比有多准确,但可能值得尝试。有关更多信息,请参阅
AS3: Date documentation。但请注意,Date文件明确说明了这一点:
除此之外,我认为你坚持使用getTimer,它返回的数据取决于你当前的操作系统/浏览器。你可能检查这些链接已经出来,否则他们会帮助解释这个问题:
Tinic Uro - Frame Rates in the Flash Player
Stack Overflow - AS3: How accurate are the getTimer() method and the Timer class?
其中/当你调用'getTimer()'?你的应用运行的是什么fps?好像你在一个大约62 fps的'ENTER_FRAME'监听器中调用它 - 看起来相当准确;) – www0z0k