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

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

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

Регистрация: Jan 2012
Сообщений: 26
По умолчанию Как создать по существующей вложенности Object-ов, иерархию MovieClip рекурсию?

Вот эта иерархия ОБЪЕКТОВ

Код AS3:
var o:Object = 
				{
					n1:
					{
						n21:null,
						n22:
						{
							n31:
							{
								n41:null,
								n42:null
							}
						},
						n23:
						{
							n32:null,
							n33:null
						}
					},
					n2:
					{
						n24:null,
						n25:
						{
							n34:
							{
								n43:null,
								n44:null
							}
						},
						n26:
						{
							n35:null,
							n36:null
						}
					}
				}

Старый 01.02.2012, 15:20
fish_r вне форума Посмотреть профиль Отправить личное сообщение для fish_r Посетить домашнюю страницу fish_r Найти все сообщения от fish_r
  № 2  
Ответить с цитированием
fish_r
 
Аватар для fish_r

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
for, for each, for in?

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

Регистрация: Jan 2012
Сообщений: 26
а конкретнее???

Старый 01.02.2012, 15:40
Genzo вне форума Посмотреть профиль Отправить личное сообщение для Genzo Посетить домашнюю страницу Genzo Найти все сообщения от Genzo
  № 4  
Ответить с цитированием
Genzo
 
Аватар для Genzo

блогер
Регистрация: Feb 2010
Адрес: MSK
Сообщений: 859
Записей в блоге: 3
Отправить сообщение для Genzo с помощью ICQ Отправить сообщение для Genzo с помощью Skype™
Наверное как-то так :
Код AS3:
private function createChildrens(parent:Object , container:DisplayObjectContainer):void
{
	for(var i:* in parent)
	{
		if(i is DisplayObject || i is Class){
			container.addChild((i is DisplayObject) ? i : new i());
		}else{
			createChildrens(i , container);
		}
	}
}
Задавайте вопрос нормально, ни черта не понятно.
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works.

Старый 01.02.2012, 17:53
Vitalya вне форума Посмотреть профиль Отправить личное сообщение для Vitalya Найти все сообщения от Vitalya
  № 5  
Ответить с цитированием
Vitalya

Регистрация: Jan 2012
Сообщений: 26
Нужно создать по объекту типа Object, MovieClip. при этом имена мувиков должны совподать с именами объектов!

Добавлено через 38 секунд
Иерархию объектов я выслал в начале

Старый 01.02.2012, 18:12
Genzo вне форума Посмотреть профиль Отправить личное сообщение для Genzo Посетить домашнюю страницу Genzo Найти все сообщения от Genzo
  № 6  
Ответить с цитированием
Genzo
 
Аватар для Genzo

блогер
Регистрация: Feb 2010
Адрес: MSK
Сообщений: 859
Записей в блоге: 3
Отправить сообщение для Genzo с помощью ICQ Отправить сообщение для Genzo с помощью Skype™
Так Object или MovieClip? В вашей иерархии одни null'ы , и них ничего кроме null'ов не создать. Куда потом эти объекты девать?
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works.

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

Регистрация: Oct 2007
Сообщений: 255
Записей в блоге: 1
Все же почитайте про циклы по ссылкам от fish_r. Объект не лучшая модель для построения вложеных клипов.
Код AS3:
var mc:MovieClip = new MovieClip();
addChild(mc)
createMC(o, mc)
function createMC(obj:Object, inMc:MovieClip)
{
    for(var val:String in obj)
    {
        if(obj[val])
        {
             var mc:MovieClip = new MovieClip()
             inMc.addChild(mc);
             createMC(obj[val], mc)
        }
    }
}
__________________
ответ прост: be || !be == true

Старый 01.02.2012, 19:02
Vitalya вне форума Посмотреть профиль Отправить личное сообщение для Vitalya Найти все сообщения от Vitalya
  № 8  
Ответить с цитированием
Vitalya

Регистрация: Jan 2012
Сообщений: 26
amesqit, спасибо большое! Очень выручили!)
Я не знал того момента
Код AS3:
for(var val:String in obj)
, в смысле не знал , что val как Стринг даст имя свойства)

Добавлено через 20 минут
Код AS3:
var mc:MovieClip = new MovieClip();
addChild(mc)
createMC(o, mc)
function createMC(obj:Object, inMc:MovieClip)
{
    for(var val:String in obj)
    {
        //if(obj[val])
        //{
             var mc:MovieClip = new MovieClip()
             inMc.addChild(mc);
             createMC(obj[val], mc)
        //}
    }
}
Чтоб все дерево скопировало пришлось убрать условие.

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

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

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


 


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


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