|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Окончание анимации в загруженной swf
Привет!
Вопрос в следующем, загружаю swf-файл в основную. Внутри загружаемого swf есть анимация, требуется узнать когда эта анимация заканчивается. Т.к нужно показывать пользователю сколько осталось до окончания анимации. После анимации выполняется следующее действие. Код: private var loader:Loader; // private function onSWFLoad(url:String):void { loader= new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeLoad) loader.load(new URLRequest(url)); } // private function completeLoad(event:Event):void { var movie:MovieClip = new MovieClip(); movie = loader.content; // Длина ролика в секундах var duration = Math.floor(movie.totalFrames / loader.contentLoaderInfo.frameRate); // Выводит 0 trace(movie.totalFrames); // Выводит 1 } Но предполагается, что на главной сцене есть 1 кадр, в нем MovieClip, внутри этого MovieClip-а находится сама анимация. Подскажите как узнать, что анимация в загруженной флешке закончилась. Спасибо! |
|
|||||
Цитата:
Код: Если использовать инструменты для взлома "Flash Decompiler", то при просмотре кода, там нет ничего загружающего откуда-то из вне. Последний раз редактировалось bumblebee; 30.05.2012 в 19:06. |
|
|||||
К вашей радости, флешка достаточно проста.
private function completeLoad(e:Event):void { var mc:MovieClip = loader.content as MovieClip; for (var i:int = 0; i < mc.numChildren; i++) { var m:MovieClip = mc.getChildAt(i) as MovieClip; if (m) { trace(m.totalFrames); m.addEventListener(Event.ENTER_FRAME,entFrame) } } } private function entFrame(e:Event):void { var mc:MovieClip = e.target as MovieClip; if (mc.currentFrame == mc.totalFrames) { trace('END') mc.removeEventListener(Event.ENTER_FRAME,entFrame) } } |
|
|||||
Появилась аналогичная проблема!
Опять загружаемая флешка, но состоит из двух кадров. Судя по декомпилированному коду в Flash Decompiler, первый кадр пустой, а на втором кадре стоит stop() и располагается movieclip с анимацией. Все ваши бранные слова с темой "Кто так делает?" - это не ко мне. Вопрос, как узнать количество кадров в этом movieclip? Код: private function completeLoad(e:Event):void { var mc:MovieClip = loader.content as MovieClip; for (var i:int = 0; i < mc.numChildren; i++) { var m:MovieClip = mc.getChildAt(i) as MovieClip; if (m) { trace(m.totalFrames); m.addEventListener(Event.ENTER_FRAME,entFrame) } } } private function entFrame(e:Event):void { var mc:MovieClip = e.target as MovieClip; if (mc.currentFrame == mc.totalFrames) { trace('END') mc.removeEventListener(Event.ENTER_FRAME,entFrame) } } var mc:MovieClip = loader.content as MovieClip; trace("total: " + mc.totalFrames) // Выводит 2 Вот конкретная флешка http://all.rutube.ru/120726/gpmdigit...2/634705_1.swf Спасибо! Последний раз редактировалось bumblebee; 03.08.2012 в 21:00. |
Часовой пояс GMT +4, время: 11:02. |
|
« Предыдущая тема | Следующая тема » |
Теги |
content , loader , swf , totalFrames , загрузка swf |
|
|