据我了解,getTimer()
非常不准确——在我自己的机器上,它总是返回一个值,它是 ~16 的乘积。 (16、33、50 等)
是否有一种简单有效的方法可以更准确地测量我的程序中两个单独调用之间的时间差(增量)?
我已经寻找了有关该主题的信息,但我发现的大部分内容似乎都没有必要详细说明。
最佳答案
编辑:
进一步挖掘,并在同事的帮助下,显然您可以通过使用 Sound 获得良好的时机。尝试创建一个新的 Sound
对象,播放它,然后从返回的 position
对象中提取 SoundChannel
属性。这里也有一些不错的想法:Stack Overflow - Accurate BPM event listener in AS3
我还没有尝试过,但是您可以尝试使用 Date
类并从中提取 milliseconds
属性,然后使用它。与 getTimer 相比,我不确定它有多准确,但它可能值得尝试。有关更多信息,请参阅 AS3: Date documentation。但是请注意,Date 文档明确指出:要计算相对时间或耗时,请参阅 flash.utils 包中的 getTimer() 方法。
除此之外,我认为您坚持使用 getTimer,它返回的数据取决于您当前的操作系统/浏览器。您可能已经检查了这些链接,否则它们将有助于解释问题:
Tinic Uro - Frame Rates in the Flash Player
Stack Overflow - AS3: How accurate are the getTimer() method and the Timer class?
关于flash - 准确测量时间增量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8998328/