Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Достать все дочерние объекты MovieClip (http://www.flasher.ru/forum/showthread.php?t=195462)

Maestro13 07.03.2013 17:16

Достать все дочерние объекты MovieClip
 
Есть мувиклип(имя-AnimConstruction_design):
Вот флеше он выглядит так- 1кадр -4 слоя, на каждом картинка(причем все картинки одинаковые). Всего 48 кадров. На каждом кадре есть несколько картинок.

Требуется: обойти мувиклип и вытащить из каждого кадра все дочерние объекты этого мувиклипа

Код AS3:

//.....
mc.addEventListener(Event.ENTER_FRAME,mcEnterFrame);                                       
mc.gotoAndStop(1);
//.....
 
private function mcEnterFrame(e:Event):void
{                               
    var mc:MovieClip=e.currentTarget as MovieClip;       
    trace(mc.name,mc.currentFrame,mc.totalFrames,mc.numChildren);
    for (var uu:int = 0; uu < mc.numChildren; uu++)
    {
        trace(mc.getChildAt(uu).name);
    }
    if(mc.currentFrame<mc.totalFrames)
    {
        mc.gotoAndStop(mc.currentFrame+1);
 
    }
        else
        {               
                mc.removeEventListener(Event.ENTER_FRAME,mcEnterFrame);
        }
}

выводит
...
AnimConstruction_design 1 48 2
instance154
instance155
...

не понимаю почему только 2 дочерних элемента, если должно быть 4. В остальных кадрах тот же косяк

caseyryan 07.03.2013 18:17

А зачем тут вообще энтер фрейм? Можно ведь в цикле обойти все кадры и достать из них все что надо

Maestro13 07.03.2013 18:19

ну да, я в начале так и делал. Потом просто подумал, что может дело в том, что кадр не инициализируется сразу. Но как оказалось дело не в этом.

Добавлено через 3 минуты
Вот в fla файле четко видно 4 чилда - все растровые изобраджения(одинаковые)

Провел такой тест:
Код AS3:

mc.gotoAndStop(1);
var cld:DiplayObject=mc.getChildAt(0)
adddChild(cld);

- почему-то добавил сразу 3 из 4 картинок

caseyryan 07.03.2013 18:28

Вообще, в мувиклипе ведь не на кадрах хранятся объекты. В кадрах они могут или добавляться или убираться, но хранятся они в самом мувиклипе. Что-то мне подсказывает что дело именно в этом. Просто в определенный момент там 4 ребенка, а в другой 2. Сложно сказать точнее не видя сам мувиклип

Maestro13 07.03.2013 18:43

Вложений: 1
Вот упрощенный исходник мувика, с ним тот же результат. Только разрешение файла надо во fla переименовать, а то fla неразрешает загружать

Maestro13 07.03.2013 18:45

Сейчас так всего 2 кадра, в каждом по 4 ребенка. addChild(mc.getChildAt(0)) На первом фрейме добавляет все 4 сразу. А на запрос mc.numChildren выводит 1.(запрос проводился до вызова addChild)

Добавлено через 42 минуты
Таоке ощущение, что флеш как-то объединяет несколько изображений в одно. Вместо изображений поставил спрайты, внутри которых изображения - все заработало нормаольно


Часовой пояс GMT +4, время: 09:37.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.