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

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

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

Регистрация: Apr 2009
Сообщений: 25
По умолчанию addChild in for loop!

Пытаюсь добавить несколько клипов сформированных из XML.
Остается только последний:
Код AS3:
	for (var bNm:String in buttonsXML.factory){
		var btnClip = new MovieClip();
		btnClip.name = buttonsXML.factory[bNm].id;
		btnClip.x = buttonsXML.factory[bNm].xcords;
		btnClip.y = buttonsXML.factory[bNm].ycords;
		btnClip.addChild(iconLoader.content);
		addChild(btnClip);
            }
Хотя по идее каждый раз при каждом новом цикле переменная btnClip должна быть заново создана.

Что я делаю неправильно?

Старый 02.11.2010, 00:50
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 2  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Да, классов Вы должны много насоздавать,
только вот сомневаюсь в правильности обхода buttonsXML.factory (Вы бы xml-ку, что парсите, выложили), есть ощущение, что все узлы в строковом виде (bNm:String) имеют одинаковое значение, поэтому buttonsXML.factory[bNm] возвращает одно и то же.
Попробуйте потрейсить buttonsXML.factory[bNm].xcords, например и bNm в теле цикла.

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

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
Код AS3:
var xml:XML;
var list:XMLList = buttonsXML.factory;
for each(xml in list){
		var btnClip = new MovieClip();
		btnClip.name = xml.id;
		btnClip.x =xml.xcords;
		btnClip.y = xml.ycords;
		btnClip.addChild(iconLoader.content);// вот тут видимо и ошибка..вы просто в каждой итерации контент вытаскиваете из контейнера и суеет в следующий
		addChild(btnClip);
            }
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

Старый 02.11.2010, 11:51
Recky вне форума Посмотреть профиль Отправить личное сообщение для Recky Найти все сообщения от Recky
  № 4  
Ответить с цитированием
Recky

Регистрация: Apr 2009
Сообщений: 25
Да действительно похоже что так! Если добавлять Circle то все ок!
В связи с этим вопрос а как быть? Как то надо перенаправить iconLoader.content
в разные MovieClip?

Старый 02.11.2010, 11:55
cleptoman вне форума Посмотреть профиль Отправить личное сообщение для cleptoman Найти все сообщения от cleptoman
  № 5  
Ответить с цитированием
cleptoman
 
Аватар для cleptoman

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
про клонирование загруженного контента тут тем море поднималось. поищите
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

Старый 02.11.2010, 12:41
Recky вне форума Посмотреть профиль Отправить личное сообщение для Recky Найти все сообщения от Recky
  № 6  
Ответить с цитированием
Recky

Регистрация: Apr 2009
Сообщений: 25
Спасибо, все нашел!

Чтобы тема не пропадала зря, вот что получилось:
Код AS3:
var iconImg:BitmapData = Bitmap(iconLoader.content).bitmapData;
 
	for (var bNm:String in buttonsXML.factory)
	{
		//trace(buttonsXML.factory[bNm].@Name);
		var btnClip:MovieClip = new MovieClip();
		btnClip.name = buttonsXML.factory[bNm].id;
		btnClip.x = buttonsXML.factory[bNm].xcords;
		btnClip.y = buttonsXML.factory[bNm].ycords;
		btnClip.addChild(new Bitmap(iconImg,"auto",true));
		btnClip.buttonMode = true;
		addChild(btnClip);
	}
Нашел вот тут: http://www.flasher.ru/forum/showthre...E2%E0%ED%E8%E5

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

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

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


 


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


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