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

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

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

Регистрация: Mar 2006
Адрес: moscow
Сообщений: 243
Отправить сообщение для El Scream с помощью ICQ
Question Из XML в массив

Ситуация
1. Есть генерируемый серверной страницей XML такого вида
Код:
<ELEMENTS>
   <obj_1 Name='object1' param_1='1' param_2='2' ... param_j="j" />
   <obj_2 Name='object2' param_1='1' param_2='2' ... param_j="j" />
   .
   . 
   .
   <obj_i Name='objecti' param_1='1' param_2='2' ... param_j="j" />
</ELEMENTS>
2. На стороне Flash
Код:
xml_table.onLoad = function(success:Boolean){
	var Nodes:XMLNode = xml_table;	
	Nodes=Nodes.firstChild;
	for (var Node:XMLNode = Nodes.firstChild; Node != null; Node = Node.nextSibling) {
	
		?????????
	}
Проблема
Как я могу сделать запись в массив my_array, не зная сколько элементов
в одном узле?. Ведь метод
Код:
my_array.push({
                                  })
здесь помоему не проходит. Как же быть?


Последний раз редактировалось El Scream; 17.10.2006 в 13:42.
Старый 17.10.2006, 13:57
Хемуль вне форума Посмотреть профиль Отправить личное сообщение для Хемуль Найти все сообщения от Хемуль
  № 2  
Ответить с цитированием
Хемуль
Квач
 
Аватар для Хемуль

Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
2 El Scream:
А что сложного? childNodes - это массив... У массива ведь длину получить можно?
Посмотрите тут: http://flasher.ru/forum/showthread.p...F1%EB%EE%E5%EC
Я там писал загрузку простого XML'я...
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого

Старый 17.10.2006, 14:13
El Scream вне форума Посмотреть профиль Отправить личное сообщение для El Scream Найти все сообщения от El Scream
  № 3  
Ответить с цитированием
El Scream

Регистрация: Mar 2006
Адрес: moscow
Сообщений: 243
Отправить сообщение для El Scream с помощью ICQ
Это не совсем то. Точнее то что я писал выше. Я не знаю сколько элементов не в XML, а сколько элементов внутри тега. Мне же нужно получить что то вроде
Код:
my_array.push({
                    param_1:Node.attributes.param_1,
                    param_2:Node.attributes.param_2,
                    .
                    . 
                    .
                    param_i:Node.attributes.param_i
                                  })
Беда в том, что я не знаю сколько парамов этих
__________________
Всем товарищ и друг

Старый 17.10.2006, 14:21
Хемуль вне форума Посмотреть профиль Отправить личное сообщение для Хемуль Найти все сообщения от Хемуль
  № 4  
Ответить с цитированием
Хемуль
Квач
 
Аватар для Хемуль

Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
2 El Scream:
Свойства attributes - тоже массив. ^_^
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого

Старый 17.10.2006, 14:43
El Scream вне форума Посмотреть профиль Отправить личное сообщение для El Scream Найти все сообщения от El Scream
  № 5  
Ответить с цитированием
El Scream

Регистрация: Mar 2006
Адрес: moscow
Сообщений: 243
Отправить сообщение для El Scream с помощью ICQ
Мда. Согласен. Я впринципе уже собрался все это через for (all in ..) делать... но тут прило в голову просто решение. Итак Код будет выглядеть так.
Код:
System.useCodepage=true;

var my_array=new Array;

var xml_obj= new XML();
	xml_obj.ignoreWhite = true;
	xml_obj.xmlDecl="xml version=1.0 encoding=UTF-8?";
	xml_obj.load("file");

xml_obj.onLoad = function(success:Boolean){
	var Nodes:XMLNode = xml_file;
	Nodes=Nodes.firstChild; // в зависимости по какой глубине XML идем
	for (var Node:XMLNode = Nodes.firstChild; Node != null; Node = Node.nextSibling) {
		my_array.push(Node.attributes);
	}
// в дальнейшем если нам нужен вывод данных в табличном виде
my_table.dataProvider =my_array;
}
Простенько и со вкусом
__________________
Всем товарищ и друг

Старый 17.10.2006, 14:52
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 6  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Цитата:
Сообщение от Хемуль
2 El Scream:
Свойства attributes - тоже массив. ^_^
attributes — объект.

Старый 17.10.2006, 15:05
Хемуль вне форума Посмотреть профиль Отправить личное сообщение для Хемуль Найти все сообщения от Хемуль
  № 7  
Ответить с цитированием
Хемуль
Квач
 
Аватар для Хемуль

Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
2 __etc:
Ага... Тогда ошибка в переведённом словаре AS...
Хотя, всё равно используется как ассоциативный массив...
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого

Старый 17.10.2006, 15:14
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 8  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
http://livedocs.macromedia.com/flash.../00002885.html — Object

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

Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
2 __etc:
Да, спасибо. я знаю. После того вашего сообщения именно туда и пошёл смотреть. Потмо сравнил с Language Reference, которфй скачал с Флешера когда-то. Там написано:
"my_xml.attributes:Array"...
Ладно, не важно, я понял.
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого

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

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

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


 


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


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