图片突出展(一) as2版

 

stop();

init();

function init() {
	rotateDirection = "left";//默认向左旋转,即浏览右边的图片
	imgSpeed = 8;//图片切换状态所花时间
	rotateSpeed = 1500;//图片循环显示间隔时间3.5秒

	imageWidth = 226;//图片宽度
	imageHeight = 220;//图片高度

	perWidth = imageWidth / 10;
	perHeight = imageHeight / 10;

	//centerX = Stage.width / 2 - 340 / 2;//舞台中央x坐标342
	//centerY = Stage.height / 2 - 340 / 2;//舞台中央y坐标214
	centerX=Stage.width/2
	centerY=Stage.height/2
	trace("centerX=" + centerX);
	trace("centerY=" + centerY);

	this.createEmptyMovieClip("imgHolder",1);//创建一个装图片的容器,并设置其深度索引为1
	//imgHolder._x = centerX - 450;//-108
	//imgHolder._y = centerY - 240;//-26	
	imgHolder._x=400;
	imgHolder._y=245;
	trace("imgHolder._x =" + imgHolder._x);
	trace("imgHolder._y =" + imgHolder._y);

	//每个位置图片的alpha
	targetAlpha = [20,40, 60, 80, 100, 80, 60, 40,20];
	//每个位置图片的x坐标
	targetX=[-290,-257,-210,-125,0,158,292,388,467];	
	//每个位置图片y坐标
	targetY = [imageHeight*0.4,imageHeight*0.3, imageHeight*0.2, imageHeight*0.1, 0, imageHeight*0.1, imageHeight*0.2, imageHeight*0.3,imageHeight*0.4];
	
	//每个位置图片的缩放比例
	targetScale = [20,40, 60, 80, 100, 80, 60, 40,20];
	//每个位置图片的深度索引值
	imageDepth = [0,80, 90, 110, 200, 112, 100,88, 0];

	leftBtn.swapDepths(3000);
	rightBtn.swapDepths(3001);
	disable_btn.swapDepths(3002);

	textVisible = [false,false, false, false, true, false, false, false, false];

	totalNum = imgNum;
	indexNum = 1;

	disable_btn._visible = false;
	disable_btn._width = Stage.width;
	disable_btn._height = Stage.height;
	disable_btn.onRollOver = function() {
		this.useHandCursor = false;
		leftBtn.gotoAndStop(1);
		rightBtn.gotoAndStop(1);
	}
	
	for (var i = 0; i < totalNum; i++) {
		imgHolder.attachMovie("img","img" + i,i + 10);//从库中取得一个元件并将其附加到影片剪辑中
		var img = imgHolder["img" + i];//相当于as3中的imgHolder.getChildByName(String("img" + i));
		img._alpha = 0;
		
		img.desc_txt.text = img_name[i];
		img.desc_txt._visible = false;//默认设置所有图片文字不显示

		loadThumbs(thumb_image[i],img.thumbs);
	}

	imgHolder.img3.desc_txt._visible = true;//设置第三张图片文字显示,此处的img2是上面attachMovie里定义的实例名"img" + i

	setMovie();//初始化图片位置及状态
}

//------------------------------------------------------------------------------@载入图片
function loadThumbs(linkUrl, movLoader) {
	var imgLoader = new MovieClipLoader();
	var obj = new Object();
	
	obj.onLoadProgress = function(target, bytesLoaded, bytesTotal) {
		pctLoaded = Math.floor(bytesLoaded / bytesTotal * 100);
		target._parent.pBar_mc.gotoAndPlay(2);
		if (!isNaN(pctLoaded)) {
			if (pctLoaded >= 100) {
				target._parent.pBar_mc.gotoAndPlay(2);
				this.gotoAndPlay(2);
			}
		}
	}
	
	obj.onLoadError = function(target_mc, errorCode, httpStatus) {
	}
	
	obj.onLoadInit = function(target) {
		new mx.transitions.Tween(target._parent.pBar_mc, "_alpha", mx.transitions.easing.Strong.easeOut, target._parent.pBar_mc._alpha, 0, 150, false);
		//此处的target是thumbs容器,设置它的尺寸与图片尺寸一样
		target._width = imageWidth;
		target._height = imageHeight;
	}
	imgLoader.addListener(obj);
	imgLoader.loadClip(linkUrl,movLoader);//载入图片
}

//------------------------------------------------------------------------------@初始化图片位置及状态
function setMovie() {
	for (var i = 0; i < totalNum; i++) {
		posNum = (indexNum + i) % totalNum;

		var img = imgHolder["img" + i];
		img._x = targetX[posNum];
		img._y = targetY[posNum];
		img._xscale = targetScale[posNum];
		img._yscale = targetScale[posNum];
		img._alpha = targetAlpha[posNum];
		img.swapDepths(imageDepth[posNum]);
	}
}

//------------------------------------------------------------------------------@图片状态改变
function rotateMovie() {
	for (var i = 0; i < totalNum; i++) {
		posNum = (indexNum + i) % totalNum;
		//trace("indexNum="+indexNum);
		//trace("posNum="+posNum);

		var img = imgHolder["img" + i];
		img.desc_txt._visible = textVisible[posNum];
		img.swapDepths(imageDepth[posNum]);

		var tween = new mx.transitions.Tween(img, "_x", mx.transitions.easing.Back.easeOut, img._x, targetX[posNum], imgSpeed, false);
		new mx.transitions.Tween(img, "_y", mx.transitions.easing.Back.easeOut, img._y, targetY[posNum], imgSpeed, false);
		new mx.transitions.Tween(img, "_xscale", mx.transitions.easing.Back.easeOut, img._xscale, targetScale[posNum], imgSpeed, false);
		new mx.transitions.Tween(img, "_yscale", mx.transitions.easing.Back.easeOut, img._yscale, targetScale[posNum], imgSpeed, false);
		new mx.transitions.Tween(img, "_alpha", mx.transitions.easing.Back.easeOut, img._alpha, targetAlpha[posNum], imgSpeed, false);
		
		img.onRollOver=function(){
			clearInterval(id);
		}
		img.onRollOut=function(){
			id = setInterval(autoRotate, rotateSpeed);
		}

		img.onRelease = function() {			
			trace(img_name[this._name.substr(3)]);
		}
	}
}

//------------------------------------------------------------------------------@自动向左旋转
function autoRotate() {
	leftBtn.gotoAndStop(1);
	rightBtn.gotoAndStop(1);
	
	//注意indexNum默认起始值是1
	indexNum--;
	if (indexNum == 0) {
		indexNum = totalNum;
	}	
	rotateMovie();
}

//------------------------------------------------------------------------------@上、下页按钮单击侦听
rightBtn.onRelease = function() {
	indexNum++;
	if (indexNum == totalNum) {
		indexNum = 0;
	}
	rotateMovie();
}

leftBtn.onRelease = function() {
	indexNum--;
	if (indexNum == 0) {
		indexNum = totalNum;
	}
	rotateMovie();
}

//------------------------------------------------------------------------------@上、下页按钮鼠标移入、出侦听
leftBtn.onRollOver = function() {
	this.gotoAndStop(2);
	clearInterval(id);
}
rightBtn.onRollOver = function() {
	this.gotoAndStop(2);
	clearInterval(id);
}
rightBtn.onRollOut = function() {
	this.gotoAndStop(1);
	rotateDirection = this._name.substr(0, 5).toString();
	id = setInterval(autoRotate, rotateSpeed);
	trace(rotateDirection);
}
leftBtn.onRollOut = function() {
	this.gotoAndStop(1);
	rotateDirection = this._name.substr(0, 4).toString();
	id = setInterval(autoRotate, rotateSpeed);
	trace(rotateDirection);
}

//------------------------------------------------------------------------------@计时器
id = setInterval(autoRotate, rotateSpeed);

 

posted @ 2010-08-16 15:18  LT世纪  阅读(340)  评论(0编辑  收藏  举报