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

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

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

Регистрация: Apr 2008
Сообщений: 71
По умолчанию вопрос по XML(function return)

у меня такая проблема я не могу сделать вывод функции onLoad
вот код

Код:
function pars(){
   var arr=new Array();

   var xml:XML = new XML();
   xml.ignoreWhite = true;

   xml.onLoad = function(success:Boolean){
      if(success){
          for(var i=0; i<xml.childNodes.length; i++){
             var node_info=xml.childNodes[i].firstChild;
             arr[i]=node_info;
          }
      }
   }

   xml.load("xml.xml");
   return arr;
}


var a = pars();
trace(a) //и выводит пустой массив, что я не так делаю?


Последний раз редактировалось MrXoT; 16.04.2008 в 12:02.
Старый 16.04.2008, 12:18
alekslitvinenk вне форума Посмотреть профиль Отправить личное сообщение для alekslitvinenk Посетить домашнюю страницу alekslitvinenk Найти все сообщения от alekslitvinenk
  № 2  
Ответить с цитированием
alekslitvinenk
 
Аватар для alekslitvinenk

Регистрация: Oct 2005
Адрес: Москва
Сообщений: 491
Отправить сообщение для alekslitvinenk с помощью ICQ Отправить сообщение для alekslitvinenk с помощью AIM Отправить сообщение для alekslitvinenk с помощью Skype™
Надо вот так:

Код:
 
var node_info=xml.firstChild.childNodes[i];

Старый 16.04.2008, 12:25
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 3  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Код:
var arr:Array = new Array ();
var xml:XML = new XML ();
xml.ignoreWhite = true;
xml.onLoad = function (success:Boolean) {
	if (success) {
		for (var i = 0; i < this.childNodes.length; i++) {
			var node_info = this.childNodes[i].firstChild;
			arr[i] = node_info;
		}
		trace (arr);
	}
};
xml.load ("xml.xml");
__________________
(и)Нильс.ru | Плагины для FlashDevelop


Последний раз редактировалось iNils; 16.04.2008 в 12:27.
Старый 16.04.2008, 12:32
qazwsx вне форума Посмотреть профиль Найти все сообщения от qazwsx
  № 4  
Ответить с цитированием
qazwsx
Banned
[+5 15.02.09]
[++5 15.02.09]

Регистрация: Mar 2008
Адрес: Krasnoyarsk
Сообщений: 587
xml.onLoad это ивент т.е кагда у xml лсучается onLoad выполняется далее описанная функция. Вы же пытаетесь из совершенно другой функции вернуть параметр этой .

Старый 16.04.2008, 12:33
MrXoT вне форума Посмотреть профиль Отправить личное сообщение для MrXoT Найти все сообщения от MrXoT
  № 5  
Ответить с цитированием
MrXoT

Регистрация: Apr 2008
Сообщений: 71
alekslitvinenk
я знаю как надо
XML структура у меня такая <node></node>

iNils
да я так пробывал но как вывести массив через return?

qazwsx
ну вот как из этого ивента сделать вывод массива ?

Старый 16.04.2008, 12:40
qazwsx вне форума Посмотреть профиль Найти все сообщения от qazwsx
  № 6  
Ответить с цитированием
qazwsx
Banned
[+5 15.02.09]
[++5 15.02.09]

Регистрация: Mar 2008
Адрес: Krasnoyarsk
Сообщений: 587
Так как написал inils только вместо трейс ретурн.

Старый 16.04.2008, 12:49
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 7  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Забудьте про return, он вам в данном случаи не поможет.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 16.04.2008, 12:52
MrXoT вне форума Посмотреть профиль Отправить личное сообщение для MrXoT Найти все сообщения от MrXoT
  № 8  
Ответить с цитированием
MrXoT

Регистрация: Apr 2008
Сообщений: 71
какие тогда могут быть идеи...
просто нужна функция которая бы выводила массив с информацией из XMLа

Старый 16.04.2008, 12:53
Nik_M вне форума Посмотреть профиль Отправить личное сообщение для Nik_M Найти все сообщения от Nik_M
  № 9  
Ответить с цитированием
Nik_M

Регистрация: Mar 2008
Сообщений: 30
Я вот тоже задавался этим вопросом и тоже не мог вывести массив за пределами функции, выводился пустой. Все сделал как написал iNils и все равно не работает, внутри функции массив заполняется, а вот после уже пустой

Старый 16.04.2008, 12:55
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 10  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Она у вас есть, называется xml.onLoad
Как только вы начали подгружать внешние данные, можете забыть про линейность выполнения кода, все действеия теперь фнутри методов и событий.

Кстати, на этом форуме наказывают за глобальное игнорирование запятых.

Цитата:
Сообщение от Nik_M
все равно не работает, внутри функции массив заполняется, а вот после уже пустой
Все наоборот. Вы путаете последовательность действий.
Если написать такой код
Код:
var arr:Array = new Array ();
var xml:XML = new XML ();
xml.ignoreWhite = true;
xml.onLoad = function (success:Boolean) {
	if (success) {
		for (var i = 0; i < this.childNodes.length; i++) {
			var node_info = this.childNodes[i].firstChild;
			arr[i] = node_info;
		}
		trace ("B:" + arr);
	}
};
xml.load ("xml.xml");
trace ("A:" + arr)
То "A:" выведется сразу, а "B:" может появиться, через секунду, минуту, миллисекунду, но всегда после "A:", так как на загрузку, даже с локального диска, нужно время.
__________________
(и)Нильс.ru | Плагины для FlashDevelop


Последний раз редактировалось iNils; 16.04.2008 в 13:11.
Создать новую тему Ответ Часовой пояс GMT +4, время: 01:05.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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