Просмотр полной версии : подгрузка внешнего swf ролика с условием..
Есть такой вопрос..
есть swf ролик сделанный в программе Anime pro studio(аналог флэша) т.е исходник не FLA формата..
теперь подгружаю его во флэш ролик, например с помощью функции loadMovie();
с этим проблем нет..
Как сделать чтоб после подгрузки ролик проигрывался 1 раз, а нет циклически!! пожалуста напишите скрипт..
так:
_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
сам ролик при сохранении сделай чтоб один раз проигрывался а не циклически.
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, ты некропостер.
//создаем контейнер для загрузки (может быть у вас уже готовый, тогда не надо):
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
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.