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

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

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

Регистрация: Oct 2006
Сообщений: 44
По умолчанию Формирование ArrayCollection из xml

Добрый вечер всем.
Хочу формировать налету ArrayCollection. Изначально данные забираю с сервера в виде XML.
Трабла в том, что ArrayCollection должен быть вида:
Код:
<mx:ArrayCollection id="mxarr">
	<mx:Object  label="ColName1" text="3 jj gehg"/>
	<mx:Object  label="ColName2" text="32ggehg"/>
</mx:ArrayCollection>
атрибуты (label,text) и прочие хранятся в массиве headers.
При этом я не могу динамически создать у элементов ArrayCollection аттрибуды с соответствующими именами.

То есть надо сделать что то вроде:
Код:
var MyXML:XML;
var headers:Array=new Array("label","data");
MyXML = new XML('<root><node id="MyNode" /></root>');
MyXML.node.@headers[0]='bla bla bla';
но разумеется строка MyXML.node.@headers[0]='bla bla bla'; не прокатывает.
Вопрос №1 - какая есть альтернатива этой строке.
Вопрос №2 - если сделать trace(MyXML.children()); то результат - пустая строка. Почему так???

Что бы лучше было все понятно - привожу полный код:

Код:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"  layout="absolute">
	<mx:Script>
		<![CDATA[
			
			import mx.collections.ArrayCollection;
			public function test_xml():void{
				var ac:ArrayCollection;
				var tmp:Array;
				var MyXML:XML;
				var headers:Array=new Array("id","title");
				MyXML = new XML('<root><node id="MyNode" /></root>');
				MyXML.node.@label='txt';
				trace(MyXML.children());
				
				tmp=new Array(MyXML);
				ac = new ArrayCollection(tmp);
				trace('\n=============\n');
				show(ac);
//				show(mxarr);
			}
			
			
			public function show(obj:ArrayCollection):void{
				for(var i:int=0;i<obj.length;i++){
					trace('obj['+i+']=Array(');
					var a:Object;
					for(a in obj[i]){
					trace('	'+a+' => '+obj[i][a]+'\a');
					}
					trace(');\n');
				}
			}
			
			
		]]>
	</mx:Script>
	
	<mx:ArrayCollection id="mxarr">
		<mx:Object id="a" label="lab1" text="3 jj gehg"/>
		<mx:Object id="b" label="lab2" text="32ggehg"/>
	</mx:ArrayCollection>
	
	<mx:Button  label="test" click="test_xml();"  x="100" y="100"/>
</mx:Application>

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

Регистрация: Feb 2006
Сообщений: 68
Отправить сообщение для barby с помощью ICQ Отправить сообщение для barby с помощью Skype™
Ответ №1: альтернативу на нашел, можно добавлять циклом во время MyXML = new XML().
Ответ №2: потому что неправильно используете. Попробуйте trace(MyXML.children().toXMLString())

Старый 20.02.2007, 21:12
ex.image вне форума Посмотреть профиль Отправить личное сообщение для ex.image Найти все сообщения от ex.image
  № 3  
Ответить с цитированием
ex.image

Регистрация: Jan 2006
Адрес: Москва
Сообщений: 65
Отправить сообщение для ex.image с помощью ICQ
А можно узнать практическое применение данного творения?
Может есть альтернативный способ решения практической задачи.
__________________
Бубен - волшебный инструмент программирования.

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

Регистрация: Oct 2006
Сообщений: 44
Да уже решил проблему.. Спасибо )

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

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

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


 


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


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