SWF-файл останавливается после 2-го цикла - PullRequest
0 голосов
/ 10 сентября 2011

У меня есть SWF-файл, который я создал с помощью Adobe Flash professional CS5.5, это базовая анимация некоторых птиц со звуком, он должен отвечать каждые 5 секунд, но по какой-то причине после того, как он начинает воспроизводить второй цикл останавливается на полпути и перезапускает видео с самого начала. Кто-нибудь может мне помочь исправить это?

Это мой actioncript:

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

Это мой javascipt для вставки фильма на 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>

Ответы [ 3 ]

4 голосов
/ 10 сентября 2011

Не используйте setInterval, потому что оно будет повторяться бесконечно, особенно если вы продолжаете создавать интервал в конце цикла. Используйте setTimeout вместо:

stop();
setTimeout(wait, 5000);
function wait(){
    gotoAndPlay(1);
}
3 голосов
/ 10 сентября 2011

так что он доходит до конца, останавливается, ждет 10 секунд и затем возвращается к началу, но пока он играет, он все еще считает еще 10 секунд, в течение которых он будет зацикливаться.

Так что в основном используйте

setTimeout(wait, 10000);

вместо

setInterval(wait, 10000);
2 голосов
/ 10 сентября 2011

Я бы порекомендовал назвать ваш setInterval и удостовериться, что вы сначала очистили его, прежде чем запускать, иначе вы можете получить некоторые нежелательные запутанные циклы там.

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

Таким образом, он всегда очищает любой предыдущий интервал при повторном переходе к первому кадру, избегая нескольких интервалов.

...