Лично я большой поклонник классной BulkLoader библиотеки:
- Это невероятно гибкий
- Предоставляет полезные помощники для доступа к загруженным ресурсам (например, getBitmap ("asset_id") возвращает типизированный объект)
- Это дает значимую обратную связь о прогрессе (значения могут быть необязательно возвращены, чтобы отражать прогресс по общему «весу», в отличие от необработанного значения из отдельных файлов, которые могут значительно различаться по размеру)
- Он обрабатывает одновременную загрузку (которая, очевидно, быстрее, чем последовательная загрузка).
В качестве альтернативы, если вы хотите прокрутить собственное решение во время цикла, добавьте прослушиватель событий в уведомление
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
}
}