![]() |
|
||||||||||
|
|||||
|
Регистрация: Oct 2009
Сообщений: 13
|
Есть XML в нём описаны изобрадения карт. Делаю загрузки и отображаю их на фон. Всё отрабатывает правильно загрузка и отборажение, НО отображается не в той последовательности, что в XML. Вопрос: как сделать, что б они отображались именно в той последовательности, в которой они перечисляются в XML.
вот сам код! 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++; } } } |
|
|||||
|
Регистрация: Nov 2007
Сообщений: 183
|
В данном коде мне как кажется проблема в том , что в общем цикле Вы запускаете
загрузку - она начинает грузить картинки, и ест-нно грузит их по разному. Я бы переделал на другую схему: Собрал бы в массив все URL Потом послал бы на загрузку [0] элемент массива, после загрузки --> i++ и повторяем все снова - но отправляем на загрузку следующий по списку массива , и т. д. И зачем вы в массив так добавляете: когда можно так : Ну и по самому XML можно сразу проходится |
![]() |
![]() |
Часовой пояс GMT +4, время: 14:50. |
|
|
« Предыдущая тема | Следующая тема » |
|
|