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

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

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

Регистрация: Dec 2010
Сообщений: 30
По умолчанию undefined в текстовом поле при загрузке данных из XML

Пытаюсь загрузить данные из XML во Flash
Код AS1/AS2:
dataXML = new XML();
dataXML.ignoreWhite = true;
dataXML.onLoad = function(success) {
	name1.text = this.name1;
	name2.text = this.name2;
	};
dataXML.load("data.xml");
вместо текста отображается undefined
Как это вылечить?
Перерыл весь поиск, но ответа не нашел
Вложения
Тип файла: zip data.zip (5.3 Кб, 26 просмотров)

Старый 20.02.2012, 19:07
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Запишите у себя
Код AS1/AS2:
trace(this.name1) //undefined
и увидите, что так обращаться нельзя, XML - это не LoadVars

Вариант 1.
Код:
<?xml version="1.0" encoding="UTF-8"?>
<names>
	<name>Текст 1</name>
	<name>Текст 2</name>
</names>
Код AS1/AS2:
dataXML = new XML();
dataXML.ignoreWhite = true;
dataXML.onLoad = function(success) {
	if (success)
	{
		var xmlnode:XMLNode = this.firstChild ; //это корневой узел <names>
		name1.text = xmlnode.childNodes[0].firstChild.toString();
		name2.text = xmlnode.childNodes[1].firstChild.toString();
	}
};
dataXML.load('data.xml');
Кооментарий
Код AS1/AS2:
xmlnode.childNodes[0].firstChild.toString();
Узел xmlnode - здесь это корневой узел <names>

Массив childNodes
Это массив узлов корневого узла, то есть все эти <name>.

Узел firstChild
Первый узел узла <name>. Текст - это тоже узел, доступ к нему можно получить так.



Вариант 2. Автоматически циклом по произвольному количеству узлов.

Атрибут id - не используется, но может понадобится, хотя бы чтобы не запутаться при формировании конфига.
С переменной цикла i он не связан, пока сами не захотите.

Код:
<?xml version="1.0" encoding="UTF-8"?>
<names>
	<name id="1">Текст 1</name>
	<name id="2">Текст 2</name>
</names>
Код AS1/AS2:
dataXML = new XML();
dataXML.ignoreWhite = true;
dataXML.onLoad = function(success) {
	if (success)
	{
		var xmlnode:XMLNode = this.firstChild ;
		var total:Number = xmlnode.childNodes.length ;
 
		for (i = 0; i < total; i++) 
		{
			_root['name' + (i + 1)].text =  xmlnode.childNodes[i].firstChild.toString();
		}
	}
};
dataXML.load('data.xml');
__________________
Идите первым!


Последний раз редактировалось mooncar; 20.02.2012 в 19:52.
Старый 20.02.2012, 20:01
AlexG77 вне форума Посмотреть профиль Отправить личное сообщение для AlexG77 Найти все сообщения от AlexG77
  № 3  
Ответить с цитированием
AlexG77

Регистрация: Dec 2010
Сообщений: 30
Спасибо! Первый вариант полностью устраивает!

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

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

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


 


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


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