Лично я большой поклонник удивительной BulkLoader библиотеки:
- Это невероятно гибкий
- Это обеспечивает полезные хелперы для доступа нагруженных активов (например, getBitmap («ASSET_ID») возвращает типизированный объект)
- Он дает значимую обратную связь о прогрессе (значения могут быть возвращены, чтобы отражать прогресс по общему «весу» в отличие от необработанного значения от отдельных файлов, которые могут существенно различаться по размеру)
- Он обрабатывает одновременную загрузку (whi ch, очевидно, быстрее, чем загрузка в последовательности).
В качестве альтернативы, если вы хотите опрокинуть свое собственное решение, по мере прохождения цикла, добавьте прослушиватель событий в уведомление
Event.COMPLETE
. В обработчике этого события увеличивайте счетчик; как только этот счетчик будет равен количеству элементов, которые вы загрузили, все ваши активы.
Псевдо-код:
var loadCounter:int = 0;
var img_arr:Array = [
"img1_thumb.jpg", "img1.jpg",
"img2_thumb.jpg", "img2.jpg",
...
];
var image_num:int = img_arr.length;
var ldr:Loader;
var req:URLRequest;
var path:String;
var i:int = 0;
for(; i < image_num; i++)
{
path = "http://myserver.com/images/" + img_arr[i];
req = new URLRequest(path);
ldr = new Loader();
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, _onLoadComplete);
ldr.load(req);
}
private function _onLoadComplete(event:Event):void
{
if(++loadCounter == image_num)
{
// do whatever you need to your loaded assets
}
}
Вы можете оставить текущий код? Это может помочь нам дать ответ. – jessegavin