繁体   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