簡體   English   中英

setInterval在獨立Flash Player中非常慢

[英]setInterval very slow in standalone flash player

Flash中的setInterval函數在內置Flash Player(測試階段)中可以正常工作,但是當我在獨立播放器上使用相同的(已發布的)SWF時,它的速度幾乎慢了十倍。 確認我創建了一個沒有任何圖形的簡單計數器,並注意到了這個問題。

PS:我檢查了各種播放器版本,甚至在Internet瀏覽器上,甚至在Windows 7上的VMWare上,我都嘗試了所有其他選項,如cpu和gpu加速,但沒有任何改善。

我的測試台:只有一幀和一個動態文本字段,名稱為“ te”。 以下是動作腳本

var lo=0;
function f():void{
    te.text=lo++;
}
setInterval(f,0);

真正的答案是,您正在使用值為0 setInterval 這意味着您希望在一個框架中盡可能多地調用函數f 但是由於AS3的特性,幀切換被延遲了,因此內部的代碼可以執行(幀速率下降)。 但是您永遠不會完成執行setInterval會一直持續下去,並且會破壞一切。 這就像在編寫while (true)循環時一樣。

因此,只要正確開始使用它,您就不會有任何問題。

我建議您使用Flash Timer類來精確間隔時間,與ENTER_FRAME或setInterval相比,它的工作效率更高

var myTimer:Timer = new Timer(1); //ms
var time = 0;
myTimer.start()
myTimer.addEventListener(TimerEvent.TIMER,timerHandle);

function timerHandle(e:TimerEvent){
    txt_time.text = time.toString();
    time++;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM