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

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

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

Регистрация: Mar 2009
Сообщений: 49
По умолчанию Слушатель конца функции

Добрый день.
как сделать что бы одна функция работала после другой ?

на примере, есть функции которая разбирает xml файл, есть функция которая записывает данные из xml в массив.. но из-за асинхронности AS, заполняется unidefinded.

Как я понял для этого существуют слушатели,попытался написать так :

Код AS1/AS2:
var array_test:Array=new Array();
var array_test1:Array=new Array();
var image:Array=new Array();
var lisen:Object=new Object();
 
function array_return(loaded)
{
	array_test=['el1','el2','el3'];
	for(i=0;i<array_test.length;i++)
	trace ("array element: " + i + " content: " + array_test[i]);
//	return array_test;
 
 
	if (loaded) {
		xmlNode = this.firstChild;
		image = [];
		description = [];
		total = xmlNode.childNodes.length;
		for (i=0; i<total; i++) {
			image[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
			trace("image["+i+"]= "+image[i]);
			description[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
		}
 
	} else {
		trace("file not loaded!");
	}
	return image;
 
 
 
}
 
//start function
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = array_return;
xmlData.load("images.xml");
 
lisen.onChanged =function() //Вопрос что поставить вместо onChanged
{
	trace ("lisen is working");
 
}
btn1.onPress=function()
{
array_test1=array_return();
for(j=0;j<array_test1.length;j++)
trace ("j: " + j + " con: " + array_test1[j]);
 
}
 
 
array_return.addListener(lisen);
так есстествено не работает, вопрос как сделать?

Старый 19.10.2009, 09:47
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 2  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
Используйте обработчик onLoad класса XML.

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

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

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


 


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


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