我有一个使用Adobe Flash专业版CS5.5创建的swf文件,它是一些带有音频的鸟的基本动画,它意味着每5秒回复一次,但由于某种原因它开始播放第二个循环中途停止并从头开始重新启动视频。任何人都可以帮我解决这个问题吗?
这是我的动作:
stop();
setInterval(wait, 10000);
function wait(){
gotoAndPlay(1);
}
这是我在jtml页面上嵌入电影的javascipt:
<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>
答案 0 :(得分:4)
不要使用setInterval
,因为它会无限期地重复,特别是如果你在循环结束时继续创建间隔。请改用setTimeout
:
stop();
setTimeout(wait, 5000);
function wait(){
gotoAndPlay(1);
}
答案 1 :(得分:3)
所以它到达终点,停止,等待10秒然后回到开头,但是当它正在播放时,它仍在计算另外10秒,然后它会循环。
所以基本上使用
setTimeout(wait, 10000);
而不是
setInterval(wait, 10000);
答案 2 :(得分:2)
我建议命名你的setInterval,并确保在启动之前先清除它,否则你可能会在那里得到一些不必要的混乱循环。
stop();
clearInterval(my_interval);
my_interval = setInterval(wait, 10000);
function wait(){
gotoAndPlay(1);
}
这样,当它再次进入第一帧时,它将始终清除任何先前的间隔,避免多个间隔。