據我所知,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