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

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

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

Регистрация: Oct 2009
Сообщений: 13
Post последовательная загрузка из XML

Есть XML в нём описаны изобрадения карт. Делаю загрузки и отображаю их на фон. Всё отрабатывает правильно загрузка и отборажение, НО отображается не в той последовательности, что в XML. Вопрос: как сделать, что б они отображались именно в той последовательности, в которой они перечисляются в XML.
вот сам код!

Код AS3:
package Img
{
	import flash.display.*;
	import flash.events.*;
	import flash.net.*;
 
	public class loadImg extends MovieClip
	{
		internal var arrImg:Array = new Array();
		internal var xmlLoad:URLLoader = new URLLoader();
		internal var xmlRequest:URLRequest;
		internal var xmlList:XMLList;
		internal var xmlTotal:int;
		internal var p:int = 0;
 
		public function loadImg():void
		{
			xmlRequest = new URLRequest("all_card.xml");
			xmlLoad.load(xmlRequest);
			xmlLoad.addEventListener(Event.COMPLETE, xmlLoaded);
		}
 
		internal function showList()
		{
			trace("arrImg["+p+"] = "+arrImg[p]);
		}
 
		internal function xmlLoaded(e:Event):void
		{
			var i:int;
			var imgLoader:Loader;
			var xmlContent:XML = new XML(e.target.data);
			this.xmlList = xmlContent.img;
			this.xmlTotal = xmlList.length();
 
			for(i = 0; i<xmlTotal; i++)
			{
				imgLoader = new Loader();
				imgLoader.load(new URLRequest(this.xmlList[i].@card));
				imgLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadFromXMLComplete);
			}
		}
 
		internal function loadFromXMLComplete(e:Event):void
		{
			arrImg[p] = e.target.url;
			showList();
			p++;
		}
 
	}
}
P.S. подскажите, ещё по самому коду, что и как лучше заменить, если есть смысл и почему надо заменить.

Старый 23.10.2009, 15:16
Doctor76 вне форума Посмотреть профиль Отправить личное сообщение для Doctor76 Найти все сообщения от Doctor76
  № 2  
Ответить с цитированием
Doctor76
 
Аватар для Doctor76

Регистрация: Nov 2007
Сообщений: 183
В данном коде мне как кажется проблема в том , что в общем цикле Вы запускаете
загрузку - она начинает грузить картинки, и ест-нно грузит их по разному.

Я бы переделал на другую схему:
Собрал бы в массив все URL
Потом послал бы на загрузку [0] элемент массива, после загрузки --> i++
и повторяем все снова - но отправляем на загрузку следующий по списку массива ,
и т. д.

И зачем вы в массив так добавляете:
Код AS3:
arrImg[p] = e.target.url;
......
p++;
когда можно так :
Код AS3:
arrImg.push(e.target.url);
Ну и по самому XML можно сразу проходится

Код AS3:
for each(var _child:XML in xmlContent.elements()){
.....
}

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

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

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


 


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


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