Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Последовательность проигрывания клипов (http://www.flasher.ru/forum/showthread.php?t=141780)

Xmen 05.07.2010 10:16

Последовательность проигрывания клипов
 
Последовательность проигрывания клипов.
у меня есть 2 клипа как можно сделать проигрывания последовательным, когда кончается один, начинал проигрывать второго.
this.loadMovie("1.swf");
this.loadMovie("2.swf");
так проигрывается только второй.

mooncar 05.07.2010 10:46

loadMovie() здесь не годится
Код AS1/AS2:

var loader:MovieClipLoader = new MovieClipLoader();
var mn:Number ;
 
this.onLoadInit = function(target:MovieClip)
{
        if (target  == cont1)
        {
                target._visible = true ;
                target.play();
                mn = setInterval(managePlay, 10);
        }
        if (target  == cont2)
        {
                target._visible = false ;
                target.stop();
        }       
};
 
loader.addListener(this);
loader.loadClip('1.swf', this.createEmptyMovieClip('cont1', this.getNextHighestDepth()));
loader.loadClip('2.swf', this.createEmptyMovieClip('cont2', this.getNextHighestDepth()));
 
function managePlay()
{
        if (cont1._currentframe == cont1._totalframes)
        {
                cont1.stop();
                cont1._visible = false ;
                cont2._visible = true ;
                cont2.play();
        }
        if (cont2._currentframe == cont2._totalframes)
        {
                cont2.stop();
                cont2._visible = false ;
                clearInterval(mn);
        }       
}

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

Xmen 05.07.2010 12:00

Спасибо код работает.
А как сделать чтобы повторялись клипы. У меня 1 раз проигрывает и все.

mooncar 05.07.2010 12:08

Цитата:

Сообщение от Xmen (Сообщение 919960)
У меня 1 раз проигрывает и все.

Такой алгоритм и предполагался.
Чтобы проигрывание было зацикленным, надо внести изменения в функцию управления воспроизведением:
Код AS1/AS2:

function managePlay() 
{
        if (cont1._currentframe == cont1._totalframes)
        {
                cont1.stop();
                cont1._visible = false ;
                cont1.gotoAndStop(1);
                cont2._visible = true ;
                cont2.play();
        }
        if (cont2._currentframe == cont2._totalframes)
        {
                cont2.stop();
                cont2._visible = false ;
                cont2.gotoAndStop(1);
                cont1._visible = true ;
                cont1.play();       
        }       
}


Xmen 05.07.2010 14:23

все сделал так как написан на коде. Нормально получился. Swf нормально играет но когда поставил через DW в сайт то нече не работает то что я нарисовал появляется а код не работаеть то есть swf не играет.

mooncar 05.07.2010 19:47

Вот так попробуй:
Код AS1/AS2:

var loader:MovieClipLoader = new MovieClipLoader();
var mn:Number = setInterval(managePlay, 10);
var count:Number = 0;
 
this.onLoadInit = function(target:MovieClip)
{       
        target._visible = false ;
        target.gotoAndStop(1);
        count++;
};
 
var cont:MovieClip = this.createEmptyMovieClip('cont_all', this.getNextHighestDepth());
var c1:MovieClip = cont.createEmptyMovieClip('cont1', 0);
var c2:MovieClip = cont.createEmptyMovieClip('cont2', 1);
 
cont._visible = false ;
loader.addListener(this);
loader.loadClip('1.swf', c1);
loader.loadClip('2.swf', c2);
 
function managePlay()
{
        if (count == 2)
        {
                cont._visible = true ;       
                c1._visible = true ;                       
                c1.play();
                delete count;
        }               
        if (c1._currentframe == c1._totalframes)
        {
                c1.stop();
                c1._visible = false ;
                c1.gotoAndStop(1);
                c2._visible = true ;
                c2.play();
        }
        if (c2._currentframe == c2._totalframes)
        {
                c2.stop();
                c2._visible = false ;
                c2.gotoAndStop(1);
                c1._visible = true ;
                c1.play();       
        }
}

Немного сложновато, но я исхожу из того, что не знаю, как работают твои 1.swf и 2.swf , можешь ли ты их редактировать, прописаны ли там где-либо stop() , т.е. тут универсальная избыточная схема и она годится для любой скорости загрузки роликов.

Xmen 06.07.2010 09:39

SWF у меня avi файлы перекодированные.
во Флеше играет а в IE только первоначальный изображения

Добавлено через 25 минут
Интересно то что я попробовал в пустом HTML использовать swf файл, вуоля все работает а в моём php страничке не получилось swf проиграть там код акшенскрипта не работает а появляется просто рисунок.


Часовой пояс GMT +4, время: 15:42.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.