缩略图宽度不同,设置其x坐标

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;
}

posted @ 2010-07-15 10:32  LT世纪  阅读(338)  评论(4编辑  收藏  举报