len=_urlArray.length;
//此处是关键。先实例化一个具有与缩略图数量相同的空数组,然后在下面第23行利用splice方法删除索引位置的空元素,并插入相应的元素
arr_thumbnail=new Array(len);
arr_thumbnailWidth=new Array(len);
function init(_urlArray:Array):void {
for (var i:int=0; i<len; i++) {
var url:String=_urlArray[i];
var thumbnailLoader:Loader=new Loader();
thumbnailLoader.name=String(i);
thumbnailLoader.load(new URLRequest(url));
thumbnailLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,onThumbnailLoaded,false,0,true);
}
}
function onThumbnailLoaded(e:Event):void {
counter++;//用于统计当前已经载入多少张缩略图
var thumbnailLoader:Loader=e.currentTarget.loader;
var index:int=int(thumbnailLoader.name);
arr_thumbnail.splice(index-1,1,thumbnailLoader);//在索引为index-1处删除一个元素,并插入相应的元素
arr_thumbnailWidth.splice(index-1,1,thumbnailLoader.width);
//判断,如果载入完所有缩略图再重新安排x坐标
if (counter==len) {
setPicXposition();
}
}
//重新设置每张缩略图x坐标
function setPicXposition():void {
for (var j:int=0; j<len; j++) {
var thumbnail:Loader=arr_thumbnail[j];
thumbnail.x=j*DISTANCE+getSumArrayElement(arr_thumbnailWidth,j);
thumbnail.y=(WIDTH-thumbnail.height)/2;
addChild(thumbnail);
}
}
//获取指定数组索引位置之前所有元素之和,包括当前索引号元素
function getSumArrayElement(_arr:Array,_index:int):Number {
var _sumElement:Number=0;
for (var i0:int=0; i0<_index; i0++) {
_sumElement+=_arr[i0];
}
return _sumElement;
}