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

本文介绍了一种使用ActionScript 3.0在Flash中实现动态加载和布局缩略图的方法。通过实例化与缩略图数量相同长度的数组,并使用splice方法更新数组中的元素,确保了缩略图加载完毕后能够正确地排列。该方法适用于需要动态展示多个图片的场景。

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

转载于:https://www.cnblogs.com/leon3286/archive/2010/07/15/1777808.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值