![]() |
|
||||||||||
|
|||||
|
Не могу понять, что не так делаю?
xml грузиться отлично. А вот изображения не хотят... public function Projects():void { loader.add("xml/projects.xml", { id:"xml" } ); loader.addEventListener(BulkLoader.COMPLETE, onXMLLoaded); loader.start(); } public function onXMLLoaded(e:Event):void { myXML = loader.getXML("xml"); my_images = myXML.item; my_total = my_images.length(); addChild(container_mc); initProjects(); } public function initProjects():void { for (var i:Number = 0; i < my_total; i++) { var img_url:String = my_images[i].img; //7 изображений с разными именами var imageId:String = my_images[i].id; //1,2,3,4,5,6,7 imageLoader = new BulkLoader(imageId); imageLoader.add(img_url, { id:imageId } ); imageLoader.get(imageId).addEventListener(BulkLoader.COMPLETE, onImageLoaded); imageLoader.start(); } } public function onImageLoaded(e:Event):void { imgBitmap = imageLoader.getBitmap(e.currentTarget.id); trace("id="+e.currentTarget.id) trace("Object="+imgBitmap); trace("------------------") } id=5 Object=null ------------------ id=2 Object=null ------------------ id=6 Object=null ------------------ id=3 Object=null ------------------ id=7 Object=[object Bitmap] ------------------ id=4 Object=null ------------------ id=1 Object=null ------------------ Подскажите, плиз. =) upd: Есть подозрение, что пока BulkLoader.COMPLETE одумается, то строка imageId наберет максимальное количество елементов, тоесть 7. Но почему тогда при выводе не все id = 7. upd2: И еще, если заметили, почему то булклоадер грузит изображения как ему захочеться.)) В данном случае хаотично.. Не 1,2,3...n, а 5,2,6...1 Последний раз редактировалось sweet_fighter; 13.02.2011 в 05:02. |
|
|||||
|
Не пользовался BulkLoader. Возможно вам стоит вместо цикла в initProjects() инициализировать загрузку следующей картинки в функции onImageLoaded(e:Event)?
|
|
|||||
|
Регистрация: Aug 2010
Адрес: Харьков, Украина
Сообщений: 42
|
Я б сделал так (убрал лишнее):
imageLoader = new BulkLoader("id555"); for (var i:Number = 0; i < my_total; i++) { var img_url:String = my_images[i].img; //7 изображений с разными именами var imageId:String = my_images[i].id; //1,2,3,4,5,6,7 imageLoader.add(img_url, { id:imageId } ); } imageLoader.addEventListener(BulkLoader.COMPLETE, onImageLoaded); imageLoader.start(); Попробовал, всё правильно - в булклоадер удобно сначала надобавлять всё что нужно грузить (в один и тот же экземпляр), потом start(). Он тогда всё нормально загрузит и Complete будет после полной загрузки. А чтоб грузить не всё сразу, там же другой метод — не start(), а loadNow() или чтото такое. Последний раз редактировалось GemiBillyBob; 13.02.2011 в 14:50. |
|
|||||
|
fljot +1)
public function initProjects():void { imageLoader = new BulkLoader("imageLoader"); for (var i:Number = 0; i < my_total; i++) { imageLoader.add(my_images[i].img/*, { id: my_images[i].id } */)addEventListener(BulkLoader.COMPLETE, onImageLoaded); } imageLoader.start(); } Цитата:
Последний раз редактировалось nOobCrafter; 13.02.2011 в 15:37. |
|
|||||
|
Цитата:
все, получилось. =) Спасибо вам. Выкладываю, может кому пригодится, кто будет искать. public function Projects():void { loader.add("xml/projects.xml", { id:"xml" } ); //TODO: Make Progress loader.addEventListener(BulkLoader.COMPLETE, onXMLLoaded); loader.start(); } public function onXMLLoaded(e:Event):void { myXML = loader.getXML("xml"); my_images = myXML.item; my_total = my_images.length(); initProjects(); } public function initProjects():void { imageLoader = new BulkLoader("imageLoader"); for (var i:Number = 0; i < my_total; i++) { var img_url:String = my_images[i].img; imageLoader.add(img_url, { id: i } ).addEventListener(BulkLoader.COMPLETE, onImageLoaded); } imageLoader.start(); } public function onImageLoaded(e:Event):void { imgBitmap = imageLoader.getBitmap(e.currentTarget.id); imgBitmap.x = 200 * e.currentTarget.id; addChild(imgBitmap); } Последний раз редактировалось sweet_fighter; 13.02.2011 в 17:07. |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:15. |
|
|
« Предыдущая тема | Следующая тема » |
|
|