我們知道 flash 裡面內建的 Timer 是不精準的(有痛苦過的就知道)
為此我用 EnterFrame 事件和 new Date() 取得系統時間
做了一個精準的Timer (比較吃效能是當然的)
當然也可以用一個高速的 Timer 去取代 EnterFrame
不過原理是一樣的,就是儲存 Timer 產生的誤差
以下是程式碼
http://paste.plurk.com/show/403072/
這個就是以系統時間為基礎的精準的Timer
如果今天我們想要讓flash動畫和音樂同步
那麼就應該做一個 SoundTimer 是以 SoundChannel.position 的值為基礎
而不是以系統時間為基礎
那麼他的建構式大概就會長這樣 new SoundTimer(soundChannel:SoundChannel)
然後我們就可以用這個 SoundTimer 來做音樂遊戲了
沒有留言:
張貼留言