SWF文件在第二次循环后停止



我有一个使用Adobe Flash专业CS5.5创建的swf文件,它是一些带有音频的鸟类的基本动画,它的意思是每5秒回复一次,但由于某种原因,它开始播放第二循环后中途停止并重新开始播放视频。有人能帮我解决这个问题吗?

这是我的actionscript:

stop();
setInterval(wait, 10000);
function wait(){
    gotoAndPlay(1);
}

这是我的javascript嵌入电影在一个html页面:

<script type="text/javascript" src="/js/swfobject.js"></script>
<script type="text/javascript">
    var flashvars = {};
    var params = {};
    params.wmode = "transparent";
    var attributes = {};
    swfobject.embedSWF("/js/birdmovie.swf", "myAlternative", "290", "163", "9.0.0", "/js/expressInstall.swf", flashvars, params, attributes);
</script>

不要使用setInterval,因为它将无限重复,特别是如果您在循环结束时一直创建interval。使用setTimeout代替:

stop();
setTimeout(wait, 5000);
function wait(){
    gotoAndPlay(1);
}

所以它到达结尾,停止,等待10秒,然后回到开始,但是当它播放时,它仍然计算另外10秒,在这段时间内它将循环。

使用

setTimeout(wait, 10000);

而不是

setInterval(wait, 10000);

我建议你命名你的setInterval,并确保你在开始它之前先清除它,否则你可能会得到一些不必要的混乱循环。

stop();
clearInterval(my_interval);
my_interval = setInterval(wait, 10000);
function wait(){
    gotoAndPlay(1);
}

这样,当它再次进入第一帧时,它将总是清除之前的间隔,避免多个间隔。

最新更新