если для 8-ки и подгружаем только изображения, то можно такой подход:
-грузим во временные мувики картинки из переданного массива урлов
-изображение копируем в BitmapData,кладем ссылку в массив, мувики удаляем
-как загрузятся все, вызываем метод onLoad
дальше по мере надобности аттачим из массива нужный битмап куда надо..

Код:
import flash.display.*;
class Someclass {
private var images:Array=[];
public var onLoad:Function;
public var length:Number;
//грузим, копируем, удаляем
public function load(urls:Array){
images=[];
length=urls.length;
var o=this;
for(var counter=length,i=length;i--;){
var ml =new MovieClipLoader();
ml.tag=i;
ml.mc=_root.createEmptyMovieClip('tmp'+i,_root.getNextHighestDepth());
ml.imgs=images;
ml.onLoadInit=function(){
var bmp=this.imgs[this.tag]=new BitmapData(this.mc._width,this.mc._height);
bmp.draw(this.mc);
this.unloadClip(this.mc);
this.mc.removeMovieClip();
if(!--counter)o.onLoad();
}
ml.loadClip(urls[i],ml.mc);
}
}
//аттачим битмап в мувик where( для примера..
public function displayImage(where:MovieClip,num:Number){
where.attachBitmap(images[num],where.getNextHighestDepth());
}
}
///////////////пример/////////////
var imageLoader=new Someclass();
imageLoader.load(['p0.jpg','p1.jpg']);
imageLoader.onLoad=function(){
//trace('loaded');
_root.onMouseUp=function(){
var mc=this.createEmptyMovieClip('tmp',this.getNextHighestDepth())
mc._x=random(Stage.width);
mc._y=random(Stage.height);
imageLoader.displayImage(mc,random(imageLoader.length));
}
}