測試用:
private var numer:int = 0;
private var prevNumer:int = 0;
private var timer:Timer = new Timer(1000, 0)
[...]
var tf:TextField = new TextField();
addChild (tf);
addEventListener (Event.ENTER_FRAME, onEnterFrame)
timer.addEventListener (TimerEvent.TIMER, onTimer)
timer.start()
function onTimer (e:TimerEvent):void
{ tf.appendText (' ' + (numer - prevNumer)); prevNumer = numer;}
function onEnterFrame (e:Event):void { numer++ }
清楚地顯示,當你看到閃光燈,TF追加等於你的FPS數。如果計時器與FPS一起改變,那麼在最小化窗口時不會看到差異。但是,回來你看2 2 2 2 2,也就是FPS降到2.
on由AsTheWormTurns停用解決方案不起作用。事件被解僱,但FPS沒有改變。 的wmode =由布萊恩先生主教不透明的解決方案不起作用太
明顯的東西嘗試:改變的onEnterFrame函數來設置FPS:
function onEnterFrame (e:Event):void { numer++; stage.frameRate = 30 }
顯然,你不能設置FPS閃爍時是不可見的!好吧,你不能設置FPS,除非你將其設置爲1。
解決方法,以你的問題很簡單,只要與此類似上述的其他定時器,但與附加條件:
function onTimer (e:TimerEvent):void {
if (numer - prevNumer == 2) adjustOriginalTimer();
tf.appendText (' ' + (numer - prevNumer)); prevNumer = numer;
}
E:你可以請在此處閱讀:http://help.adobe.com/en_US/as3/mobile/WS4bebcd66a74275c36cfb8137124318eebc6-8000.html
+1用於在AIR應用程序中添加有關該屬性的註釋。我不知道存在。我也同樣感到驚訝,有一種方法可以在瀏覽器中執行此操作。 – JeffryHouser
嘿Jay先生,你有沒有嘗試過可能的修復方法? – Ryan
還沒有,對不起。我一直非常忙,但我會盡快發佈我發現的內容。我做了一些快速測試,並且很難複製延遲,這導致我相信也許我錯誤地影響了定時器的幀率下降。無論哪種方式,我會嘗試測試它,但我不確定如何使用窗口視圖來測量幀率(以防計時器不受影響)。我認爲獎金會自動給出最高分的答案,但如果不是這種情況,我可以接受你的答案,因爲你是第一個答覆。 – JayPea