2009-05-30 53 views

回答

10

更具體些。

currentTime = getTimer(); 
diff = currentTime - prevTime; 

prevTime = currentTime;//update for next go around 

編輯

getTimer需要你導入的包:flash.utils.getTimer;

3

use getTimer(); ?

1

你應該使用內置的Timer功能在某種程度上* ENTER_FRAME獨立的方式來調用一個方法。

var timer:Timer = new Timer(500, 0); 
timer.addEventListener(TimerEvent.TIMER, timerHandler); 
timer.start(); 

private function timerHandler(event:TimerEvent):void 
{ 
    // do something 

    // *EDIT* Thanks @Luke spotting this out (check comments) 
    event.updateAfterEvent(); 

} 

*)你仍然需要記住的事件處理程序的幀之間不會被觸發這樣的情況下,你的腳本是滯後的(因爲一些其他進程的)這個調用也將被推遲。 準確地說,方法調用將近似於在同一時間執行的框架或緊接在延遲延遲時間之後執行的框架。

+0

的一個問題,或者說原因,你不要不需要這樣做,就是渲染不會更新,直到下一個輸入框架,所以沒有理由不更新等待它,然後更新你的屬性。另外,通過使用getTimer方法,您正在使用始終存在的內部計時器,而不是創建一個新的計時器,這個計時器更乾淨,並且增加了對應用程序的「重量」。 (不是說一個計時器和事件會增加很多的重量) – 2009-05-31 02:25:49

1

正如其他人所說,getTimer是最好的方式去...但我想建議的東西: 如果你想要做基於時間的動畫,基於更新幀,你也可以嘗試一些更大的ActionScript補間圖書館,作爲中間人caurina ......他們只是做開箱即用,並提供其他偉大的功能...

格爾茨

back2dos