PDA

Просмотр полной версии : подгрузка внешнего swf ролика с условием..


Mansur
19.05.2010, 14:27
Есть такой вопрос..
есть swf ролик сделанный в программе Anime pro studio(аналог флэша) т.е исходник не FLA формата..
теперь подгружаю его во флэш ролик, например с помощью функции loadMovie();
с этим проблем нет..
Как сделать чтоб после подгрузки ролик проигрывался 1 раз, а нет циклически!! пожалуста напишите скрипт..

bear84
19.05.2010, 14:34
так:


_root.createEmptyMovieClip("mc", _root.getNextHighestDepth());
var loaderMain = new MovieClipLoader();
var listenerMain = new Object();
listenerMain.onLoadInit = function(target_mc)
{
target_mc.stop();
};

loaderMain.addListener(listenerMain);
loaderMain.loadClip(mc, "c:\rolik.swf");

alfipago
22.08.2011, 02:25
сам ролик при сохранении сделай чтоб один раз проигрывался а не циклически.

mooncar
22.08.2011, 04:44
loadMovie() в топку, он не дает никаких событий "после"...


//создаем контейнер для загрузки (может быть у вас уже готовый, тогда не надо):
var cont:MovieClip = _root.createEmptyMovieClip('cont_mc', _root.getNextHighestDepth());
var mcl:MovieClipLoader = new MovieClipLoader(); //создаем загрузчик
var lst:Object = new Object(); //создаем слушатель загрузки
lst.onLoadInit = lstInit; //что делать после загрузки, т.е. назначаем обработчик события onLoadInit
mcl.addListener(lst); //теперь добавляем слушатель к загрузчику
mcl.loadClip('rolik.swf', cont); //и наконец стартуем загрузку в контейнер cont

function lstInit(tgt:MovieClip)
{
//после загрузки назначаем загруженному ролику обработчик onEnterFrame
//для отслеживания окончания загруженного ролика
tgt.onEnterFrame = tgtEnterFrame;
}

function tgtEnterFrame ()
{
if (this._currentframe == this._totalframes) //отслеживаем окончание ролика
{
this.stop(); //останавливаем в конце
delete this.onEnterFrame ; //перестаем следить
}
}


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

Если оставите loadMovie(), то не сможете отследить окончание загрузки, и назначить какие-либо функции.
Причем локально с этим может что-то и получится, но после заливки на хостинг все перестанет работать.

PS. Ба, а темке-то год. Ну, alfipago, ты некропостер.

xkasab
12.04.2012, 23:31
//создаем контейнер для загрузки (может быть у вас уже готовый, тогда не надо):
var cont:MovieClip = _root.createEmptyMovieClip('cont_mc', _root.getNextHighestDepth());
var cont2:MovieClip = _root.createEmptyMovieClip('cont_mc', _root.getNextHighestDepth(),this.getNextHighestDepth(),0,200,420,200);
var mcl:MovieClipLoader = new MovieClipLoader(); //создаем загрузчик
var lst:Object = new Object(); //создаем слушатель загрузки
lst.onLoadInit = lstInit; //что делать после загрузки, т.е. назначаем обработчик события onLoadInit
mcl.addListener(lst); //теперь добавляем слушатель к загрузчику
mcl.loadClip('Bunshin Kaiten.swf', cont); //и наконец стартуем загрузку в контейнер cont
mcl.loadClip('Shishi Rendan.swf', cont2); //и наконец стартуем загрузку в контейнер cont

function lstInit(tgt:MovieClip)
{
//после загрузки назначаем загруженному ролику обработчик onEnterFrame
//для отслеживания окончания загруженного ролика
tgt.onEnterFrame = tgtEnterFrame;
}

function tgtEnterFrame ()
{
if (this._currentframe == this._totalframes) //отслеживаем окончание ролика
{
this.stop(); //останавливаем в конце
delete this.onEnterFrame ; //перестаем следить
}
}
подскажите где ошибка, пытаюсь загрузить 2 ролика, разместить один под другим

Добавлено через 7 часов 12 минут
нашел решение:
//создаем контейнер для загрузки (может быть у вас уже готовый, тогда не надо):
var cont:MovieClip = _root.createEmptyMovieClip('cont_mc', _root.getNextHighestDepth());
var mcl:MovieClipLoader = new MovieClipLoader(); //создаем загрузчик
var lst:Object = new Object(); //создаем слушатель загрузки
lst.onLoadInit = lstInit; //что делать после загрузки, т.е. назначаем обработчик события onLoadInit
mcl.addListener(lst); //теперь добавляем слушатель к загрузчику
mcl.loadClip('Shishi_Rendan.swf', cont); //и наконец стартуем загрузку в контейнер cont

function lstInit(tgt:MovieClip)
{
//после загрузки назначаем загруженному ролику обработчик onEnterFrame
//для отслеживания окончания загруженного ролика
tgt.onEnterFrame = tgtEnterFrame;
}

function tgtEnterFrame ()
{
if (this._currentframe == this._totalframes) //отслеживаем окончание ролика
{
this.stop(); //останавливаем в конце
delete this.onEnterFrame ; //перестаем следить
}
}
cont._x=0
cont._y=200
//создаем контейнер для загрузки (может быть у вас уже готовый, тогда не надо):
var cont1:MovieClip = _root.createEmptyMovieClip('cont_mc1', _root.getNextHighestDepth());
var mcl:MovieClipLoader = new MovieClipLoader(); //создаем загрузчик
var lst:Object = new Object(); //создаем слушатель загрузки
lst.onLoadInit = lstInit; //что делать после загрузки, т.е. назначаем обработчик события onLoadInit
mcl.addListener(lst); //теперь добавляем слушатель к загрузчику
mcl.loadClip('Bunshin_Kaiten.swf', cont1); //и наконец стартуем загрузку в контейнер cont

function lstInit(tgt:MovieClip)
{
//после загрузки назначаем загруженному ролику обработчик onEnterFrame
//для отслеживания окончания загруженного ролика
tgt.onEnterFrame = tgtEnterFrame;
}

function tgtEnterFrame ()
{
if (this._currentframe == this._totalframes) //отслеживаем окончание ролика
{
this.stop(); //останавливаем в конце
delete this.onEnterFrame ; //перестаем следить
}
}
cont1._x=0
cont1._y=0