2010-09-08 39 views
0

那麼我有自定義的FLV播放器,它讀取XmL並在Flv視頻上繪製圓圈。位置和時間在XML中指定。我用as3 getTimer()函數進行了計算。它工作正常,無論你暫停多久,然後再玩。圈子顯示在正確的時間。在自定義的FLV播放器上畫圓圈

現在我有兩個問題

1-如何getTimer可以重置?當用戶被允許播放另一個swf時,它是必需的。 2-除getTimer計算之外是否還有其他方法?我沒有使用Timer類,因爲它取決於Frame-Script執行時間,並且可能會產生錯誤的結果,所以它不如getTimer()函數準確。 3-因爲我使用的自定義滑塊,所以我必須做每次當用戶單擊或拖動滑塊w.r.t getTimer()函數,然後減去秒和所有的計算。但是當用戶播放另一個swf時,它又非常困難,因爲我的計算基於getTimer()函數。

如果有任何開源項目可用,請轉發我的鏈接,但我希望它在Flash Player和Air Player上運行?

回答

0

我會盡力爲你指明正確的方向,但首先回答您的問題:

  1. 沒有
  2. 沒有(除了使用定時器)
  3. 它不應該有任何更多困難

爲了擴大數字3,因爲這是你的解決方案所在,它確實不應該再困難。您需要跟蹤當前FLV啓動的時間。只要你有這個數學真的沒有什麼不同。最簡單的方法是引入您自己的reset函數,並將getTimer包裝在自定義函數中以添加所需的其餘功能。事情是這樣的:

var startTime:int; 

function resetTimer():void { 
    startTime = getTimer(); 
} 

function getTime():int { 
    return getTimer() - startTime; 
} 

在上面的例子中,你總是從getTime而不是getTimer訪問當前的時間,超越一切是一樣的。只需確保在需要時致電resetTimer

我希望有幫助!