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

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

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

Регистрация: Sep 2006
Сообщений: 43
По умолчанию Использование метода Loader.load() в цикле

Есть программа:
Код:
var stageWidth:int=550; var stageHeight:int = 400;
var mapXML:XML = new XML();
var mapLoader:URLLoader = new URLLoader(new URLRequest("map.xml"));
mapLoader.addEventListener(Event.COMPLETE, redrawMap);

function redrawMap(event:Event):void
{
    mapXML = XML(mapLoader.data);
    trace("Data loaded.");

	
	var pic:Array = new Array();
	var picLoader:Loader = new Loader();
	picLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,picLoadComplete);

	for each (var cell:XML in mapXML.cell)
	{
    	var filename:String = String(cell.filename);
    	var xc:Number = Number(cell.xc);
    	var yc:Number = Number(cell.yc);
	picLoader.load(new URLRequest(filename));
	}

	function picLoadComplete(event:Event):void
	{
	    trace(xc);

		pic.push(new Bitmap()); 
		pic[0].bitmapData = event.target.content.bitmapData;
		pic[0].x = xc*pic[0].width;
		pic[0].y = stageHeight - (yc+1)*pic[0].height;
		addChild(pic[0]);
	}
}
Проблема в том, что, как мне кажется, новый
Код:
picLoader.load(new URLRequest(filename));
можно вызывать лишь из обработчика предыдущего вызова - из
Код:
function picLoadComplete(event:Event):void
т.е получается,нужна рекурсия.
Можно ли ее избежать?
Если нет, то какое условие надо ставить для выхода из рекурсии?

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

Регистрация: Sep 2002
Сообщений: 30,787
Так надо не в цикле вызывать загрузку, а после Event.COMPLETE вызывать загрузку следующего рисунка.

Старый 25.05.2007, 18:27
Arsenium вне форума Посмотреть профиль Отправить личное сообщение для Arsenium Найти все сообщения от Arsenium
  № 3  
Ответить с цитированием
Arsenium

Регистрация: Sep 2006
Сообщений: 43
Тогда как сделать парсинг XML без использования for each..in?

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

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

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


 


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


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