|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
UFO
Регистрация: Jul 2007
Сообщений: 173
|
выдернуть всех чилдов из эмбед мувиклипа
Дано:
Мувик который цепляем в проект как [ Embed ( .... Создаем и кладем на сцену. Задача: В цикле выдернуть все вложенные в него мувики, из всех кадров. Именно в цикле и именно из всех кадров, но за одно вхождение в кадр. Примерное решение: от iNils: 1. раздебажить флешку внутри себя выдернуть необходимые данные. (это долго, но можно как вариант) 2. раздебажить все swf еще на этапе сборки проекта и необходимые данные засунуть в флешку (это не оптимально) Я пока думаю сделать просто предзагрузку, в которой пройтись по всем таким мувикам и надергать необходимую информацию (но это отнимет время) Кто подскажет еще варианты? Последний раз редактировалось ALiEN_; 15.06.2009 в 17:37. Причина: более конкретно описал задачу |
|
|||||
такое подозрение, что за одно вхождение в кадр никак не узнать, что лежит в других кадрах, только если 'проехаться' по линейке в реальном времени:
private function enterFrameHandler(evnt:Event):void { trace( "_testMC.currentFrame : " + _testMC.currentFrame ); for (var i:int = 0; i < _testMC.numChildren; i++) { var child:DisplayObject = _testMC.getChildAt(i); trace( "child : " + child ); } if (_testMC.currentFrame == _testMC.totalFrames) { _testMC.removeEventListener(Event.ENTER_FRAME, enterFrameHandler); } _testMC.nextFrame(); } |
|
|||||
UFO
Регистрация: Jul 2007
Сообщений: 173
|
Да, как вариант, я и имел ввиду этот способ под предзагрузкой.
Только что с Нилсом обнаружили, за одно вхождение в кадр можно спокойно узнать, если компилировать в windows, если под маком получается глюк. Собственно я бился головой об стену под маком: Делаем переходы gotoAndStop в цикле на все кадры основного ролика. В нем в определенные моменты появляются чилды numChildren = 2 или 3 (все как положено), но getChildAt (2) например возвращает пустую ссылку. Видимо баг плеера под макинтошем и надо искать пути обхода. Последний раз редактировалось ALiEN_; 15.06.2009 в 21:11. |
|
|||||
сомнительно, что маковский плеер так сильно отличается
к слову, у меня и в винде getChildAt дает null , при том что numChildren показывает верно (Win XP SP3, плеер 10,0,22,87, flex_sdk_3.4) Последний раз редактировалось silin; 15.06.2009 в 22:08. |
|
|||||
UFO
Регистрация: Jul 2007
Сообщений: 173
|
хм ... странно как, вот ссылка на готовый проект.
Соберем статистику, у меня mac os, версия плеера 10.0.22.87, FDT сборка под Flex SDK 3.2. numChildren показывает верно, getChildAt возвращает null или undefined, иногда Object, но не DisplayObject и не MovieClip. UPD: Очень забавно, если в конструкторе цикл убрать и заменить на вызов этой функции, все встает на свои места (только время надо подобрать) У меня с единицей, все мувики кроме одного находятся, если поставить 10, то вообще все назодятся. Такое впечатление, что мувики тупо не успевают инициализироваться, где то телега вперед лошади бежит ))) Последний раз редактировалось ALiEN_; 15.06.2009 в 22:01. |
|
|||||
UFO
Регистрация: Jul 2007
Сообщений: 173
|
А что с ними? С ними вроде вообще проблем нет. Или в чем конкретно вопрос?
|
|
|||||
Modus ponens
|
Цитата:
__________________
Hell is the possibility of sanity |
|
|||||
UFO
Регистрация: Jul 2007
Сообщений: 173
|
Сегодня всю ночь просидел с этим багом. Вобщем пока не удалось найти нормального решения ...
Определил, что если повесить слушателя ADDED на мувик, то в момент события, на таймлайне мувика ЕСТЬ ВСЕ вложенные мувики и они не null, далее пробегаясь по ним, вешал слушателей ADDED уже на них, но здесь ситуация получалась немного хуже. Ситуация примерно такая, как если бы мы сначала сделали addChild ( movie ), а потом на movie повесили слушателя ADDED (в итоге он все равно срабатывает, но в target лежит какая то ерунда, вроде Shape) Очевидно это бага плеера, надо поискать репорты или зарепортить с примером... |
Часовой пояс GMT +4, время: 07:16. |
|
« Предыдущая тема | Следующая тема » |
Теги |
embed , frame , gotoandstop , movieclip |
|
|