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

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

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

Регистрация: Apr 2009
Сообщений: 25
По умолчанию Array vs Object

Уважаемые гуру! Прошу помощи по следующему вопросу:

Есть следующий XML:
Код:
<?xml version="1.0" encoding="utf-8" ?>
           <buttons>
	       <factory Name="Name1">
                            <desc> Some text here</desc>
		  <xcords> 220 </xcords>
                            <ycords> 158 </ycords>
                            <id> lnk1 </id>
	       </factory>
           </buttons>
есть код :

Код AS3:
for (var bNm:String in buttonsXML.factory)
	{
		var btnClip:MovieClip = new MovieClip();
		btnClip.name = buttonsXML.factory[bNm].id;
		btnClip.x = buttonsXML.factory[bNm].xcords;
		btnClip.y = buttonsXML.factory[bNm].ycords;
		var icnImgC:Bitmap = new Bitmap(iconImg,"auto",true);
		icnImgC.name = "iconImgCl";
		btnClip.addChild(icnImgC);
		btnClip.buttonMode = true;
		addChild(btnClip);
 
		btnClip.addEventListener(MouseEvent.ROLL_OVER,btnOver);
		btnClip.addEventListener(MouseEvent.ROLL_OUT,btnOut);
 
	}
 
        function btnOver(evt:Event):void{
	tt.show( MovieClip(evt.currentTarget), "Name", "Ok");
       }
 
        function btnOut(evt:Event):void{
        }
Как бы мне так изящно раздать тэги <factory Name="Name1"> и <desc> Some text here</desc> на добавленные MovieClip'ы, чтобы выводить в tt.show текст из XML вместо "Name" и "OK"? Думал сделать через массивы для <Name> и <Desc> и Push, но вычитал что для имен их лучше не использовать, теперь пытаюсь понять как это осуществить через object? Их (object) тогда надо на каждый клип делать, что мне кажется не лучшим вариантом. Было бы здорово все это сделать в том же for лупе что и все остальное. Или думал с варинтом черезTextBox, но тоже как то коряво получается я буду отправлять значения тэгов в другую функцию, зачем тогда TextBox будет болтаться на сцене. Как бы сложить в MovieClip'ы значения двух переменных, что бы обращаться к ним через evt.target.name например. Типа как у Object ввести два параметра для каждого клипа Name и Desc? Хочется красиво написать чтобы удобно было использовать потом.

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

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
Создайте собственный класс унаследованный от MovieClip. Который бы имел публичные свойства/методы или геттеры/сеттеры. И обращались бы к нему потом как то так:
Код AS3:
(event.target as MyMovieClip).desc

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

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
Класс MovieClip описывается как public dynamic class MovieClip. Это значит, что мы можем добавлять его экземплярам динамические свойства. Иными словами, может вам подойдет подобное решение:
Код AS3:
var new_mc:MovieClip = new MovieClip();
new_mc.myName = "Name1";
new_mc.desc = "Some text here";
 
trace(new_mc.myName);
trace(new_mc.desc);
 
// output:
// Name1
// Some text here

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

Регистрация: Apr 2009
Сообщений: 25
Господи! Как все просто. Просто супер, то что надо!!! Спасибо огромное

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

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

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


 


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


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