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

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

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

Регистрация: Jul 2007
Адрес: Гражданин Российской Федерации
Сообщений: 1,122
Отправить сообщение для KiL33 с помощью ICQ
По умолчанию Получить все вложенные мувики

Допустим есть мувик вложенный в мувик вложенный еще в 4 мувика. В каждом мувике какая-то анимация. Нужно каждый мувик остановить на первом кадре.
Вот такая бесконечная матрешка получается:
Код AS3:
for (var i:uint = 0; i < target_mc.numChildren; i++) {
	if (target_mc.getChildAt(i).hasOwnProperty("numChildren")) {
		target_mc.getChildAt(i).gotoAndStop(0);
		for (var j:uint = 0; j < target_mc.getChildAt(i).numChildren; j++) {
			target_mc.getChildAt(i).getChildAt(j).gotoAndStop(0);
			if (target_mc.getChildAt(i).getChildAt(j).hasOwnProperty("numChildren")) {
				for (var k:uint = 0; k < target_mc.getChildAt(i).getChildAt(j).numChildren; k++) {
					target_mc.getChildAt(i).getChildAt(j).getChildAt(k).gotoAndStop(0);
				}
			}
		}
	}
}
Ерунда полная. Есть способ сделать это не то что бы гибко, скорее правильно в моем случае?

Старый 11.05.2016, 01:59
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 2  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Рекурсия поможет.
Код AS3:
/**
 * Останавливает все найденные внутри obj экземпляры MovieClip (включая сам obj)
 * независимо от степени вложенности.
 */
function stopIt(obj:DisplayObject):void {
	var doc:DisplayObjectContainer = obj as DisplayObjectContainer;
 
	// Если это не контейнер, ничего не делаем.
	if (doc == null) {
		return;
	}
 
	// Если этот объект является экземпляром MovieClip, останавлиаем его.
	if (doc is MovieClip) {
		(doc as MovieClip).gotoAndStop(0);
	}
 
	// Вызываем stopIt() для каждого из детей объекта.
	var i:int = doc.numChildren;
	while (i--) {
		stopIt(doc.getChildAt(i));
	}
}
 
// Тотально останавливаем target_mc.
stopIt(target_mc);
__________________
Поймай яблоко 2!

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

Регистрация: Jul 2007
Адрес: Гражданин Российской Федерации
Сообщений: 1,122
Отправить сообщение для KiL33 с помощью ICQ
Спасибо, который раз уже выручаете!)

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

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

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


 


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


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