Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 07.03.2013, 17:16
Maestro13 вне форума Посмотреть профиль Отправить личное сообщение для Maestro13 Найти все сообщения от Maestro13
  № 1  
Ответить с цитированием
Maestro13

Регистрация: May 2009
Адрес: Санкт-Петербург
Сообщений: 79
По умолчанию Достать все дочерние объекты 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. В остальных кадрах тот же косяк

Старый 07.03.2013, 18:17
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 2  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
А зачем тут вообще энтер фрейм? Можно ведь в цикле обойти все кадры и достать из них все что надо

Старый 07.03.2013, 18:19
Maestro13 вне форума Посмотреть профиль Отправить личное сообщение для Maestro13 Найти все сообщения от Maestro13
  № 3  
Ответить с цитированием
Maestro13

Регистрация: May 2009
Адрес: Санкт-Петербург
Сообщений: 79
ну да, я в начале так и делал. Потом просто подумал, что может дело в том, что кадр не инициализируется сразу. Но как оказалось дело не в этом.

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

Провел такой тест:
Код AS3:
mc.gotoAndStop(1);
var cld:DiplayObject=mc.getChildAt(0)
adddChild(cld);
- почему-то добавил сразу 3 из 4 картинок

Старый 07.03.2013, 18:28
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 4  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Вообще, в мувиклипе ведь не на кадрах хранятся объекты. В кадрах они могут или добавляться или убираться, но хранятся они в самом мувиклипе. Что-то мне подсказывает что дело именно в этом. Просто в определенный момент там 4 ребенка, а в другой 2. Сложно сказать точнее не видя сам мувиклип

Старый 07.03.2013, 18:43
Maestro13 вне форума Посмотреть профиль Отправить личное сообщение для Maestro13 Найти все сообщения от Maestro13
  № 5  
Ответить с цитированием
Maestro13

Регистрация: May 2009
Адрес: Санкт-Петербург
Сообщений: 79
Вот упрощенный исходник мувика, с ним тот же результат. Только разрешение файла надо во fla переименовать, а то fla неразрешает загружать
Вложения
Тип файла: txt Тест.txt (6.6 Кб, 33 просмотров)

Старый 07.03.2013, 18:45
Maestro13 вне форума Посмотреть профиль Отправить личное сообщение для Maestro13 Найти все сообщения от Maestro13
  № 6  
Ответить с цитированием
Maestro13

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

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

Создать новую тему Ответ Часовой пояс GMT +4, время: 20:26.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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