![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jun 2010
Сообщений: 18
|
Подгружаю внешний .swf через MovieClipLoader(), всё грузится отлично, прогресс бар бежит исправно но вот чего не хватает: хочется чтобы загружаемая флешка до того как полностью загрузится не запускалась.
Вставлял уже даже в .onLoadProgress команду mc.stop(); (mc - объект созданный через createEmptyMovieClip(), куда грузится флешка) не помогает. Флешка грузится и сразу-же исполняется. Ни mc._visibility= false ни mc.stop() не делают с ней ничего. Только удаётся задать позицию загрузки флешки через mx._x и mc._y Загружаемые таким образом клипы не управляются из загружающего клипа совсем? Или есть способ? Подскажите пожалуйста! |
|
|||||
|
Модрон-ветеринар
|
Флешка не запустится до полной загрузки при использовании MCL.
Как только она загрузится, с нею будет происходить все то, что предусмотрено ее сценарием. Если в ее первом кадре стоит stop(), то она так и останется на первом кадре. Если в ней не стоит stop() на первом кадре, то она начнет проигрываться сразу после загрузки. Если вам нужно, чтобы она была принудительно остановлена после загрузки, даже если в ней не прописан stop() в первом кадре, сделайте это явно в коде ее загрузки: Последний раз редактировалось mooncar; 24.06.2010 в 19:58. |
|
|||||
|
Регистрация: Jun 2010
Сообщений: 18
|
Мой код немного другой:
var mc:MovieClip = this.createEmptyMovieClip("mc1", this.getNextHighestDepth()); mc._x = 0; mc._y = 0; var mcLoader:MovieClipLoader = new MovieClipLoader(); var mcListener:Object = new Object(); mcListener.onLoadInit = function(target:MovieClip) { target.stop(); } mcListener.onLoadProgress = function(target:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void { // тут вызывается функция меняющая прогресс-бар set_progress_pos( bytesLoaded / bytesTotal * 100 ); } mcLoader.addListener(mcListener); mcLoader.loadClip("flash.swf", mc); Да, флешку я гружу не свою (пока что) поэтому в её код вставить в первый кадр stop() не смогу ![]() Ещё вопрос: а что происходит с загружаемым таким образом флеш-роликом, у которого анимация не кадровая а скриптовая? Ведь скрипт по stop() не остановить. Получается он будет выполняться в любом случае? Можно-ли его тогда хотя-бы скрыть? А то такой фокус тоже не прокатывает, хоть и странно. ---------- Всё, разобрался. Вот в итоге такой код работает как мне надо: this.createEmptyMovieClip("mc1", this.getNextHighestDepth()); var mcLoader:MovieClipLoader = new MovieClipLoader(); var mcListener:Object = new Object(); mcListener.onLoadStart = function(target:MovieClip) { target._x = 0; target._y = 0; target._visible= false; } mcListener.onLoadProgress = function(target:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void { set_progress_pos( bytesLoaded / bytesTotal * 100 ); } mcListener.onLoadComplete = function(target:MovieClip) { wLoading1.removeMovieClip(); target._visible= true; } mcLoader.addListener(mcListener); mcLoader.loadClip(sMainFile, mc1); Последний раз редактировалось Бармалейкин; 24.06.2010 в 23:07. |
|
|||||
|
Модрон-ветеринар
|
Вроде все верно. Раз чужая флешка - к автору обращайтесь, как ее остановить.
Раз программная анимация в ней - никаким stop() ее не остановить, надо знать как и что там организовано и постараться предотвратить это после загрузки (действуя изнутри onLoadInit) Всегда что-либо делайте с загруженным только изнутри onLoadInit. Попробуйте скрыть ее, как хотели: Разумеется, если где-либо внутри загруженный флешки есть обратное действие (...._visible= true) для каких-то ее элементов, то тогда уж никак. И еще, вот это избыточно: Пустой мувик создается и без этого в нулевых координатах. PS. Используйте свои ролики для работы или связывайтесь с автором... Последний раз редактировалось mooncar; 24.06.2010 в 23:13. |
![]() |
![]() |
Часовой пояс GMT +4, время: 00:28. |
|
|
« Предыдущая тема | Следующая тема » |
|
|