flash-导航栏特效2--一边的缩放(个人认为并不好)

//把鼠标放入某个按钮的时候,按钮能够放大,并且其他的按钮会自动弹开相同的间距。
//
重点是有一个不结束的循环帧事件来检测每个对象的具体的位置,然后当某一个按钮
//
改变状态的时候其他按钮也能立即移动
var minScale:Number=1.0;//缩放的最小尺寸
var maxScale:Number=2.0;//缩放的最大尺寸
var speed:Number=0.3;//缩放的速度
//
整个特效的循环帧事件
this.addEventListener(Event.ENTER_FRAME,onEnter);

function onEnter(evt:Event):void{
//mc是一个固定位置的按钮,隐藏不可见,也可以用一个固定的x坐标
mc_a.x+=((mc.x+mc.width+40)-mc_a.x)*speed;
//重点是mc_a的x与width的大小会缩放,所以很明显这回导致mc_b的坐标改变。
mc_b.x+=((mc_a.x+mc_a.width+10)-mc_b.x)*speed;
mc_c.x+=((mc_b.x+mc_b.width+10)-mc_c.x)*speed;
}
//给每一个显示的按钮添加移入与移除事件,移入的时候按钮放大,移除的时候还原大小
mc_a.addEventListener(MouseEvent.MOUSE_OUT,onMouseOut);
mc_a.addEventListener(MouseEvent.MOUSE_OVER,onMouseOver);
mc_b.addEventListener(MouseEvent.MOUSE_OUT,onMouseOut);
mc_b.addEventListener(MouseEvent.MOUSE_OVER,onMouseOver);
mc_c.addEventListener(MouseEvent.MOUSE_OUT,onMouseOut);
mc_c.addEventListener(MouseEvent.MOUSE_OVER,onMouseOver);

//移入缩放的
function onMouseOver(evt:MouseEvent):void{

//evt.target.scaleX=minScale;
//evt.target.scaleY=minScale;
//移入的事件
evt.target.addEventListener(Event.ENTER_FRAME,onMaxScale);
evt.target.removeEventListener(Event.ENTER_FRAME,onMinScale);

}
function onMouseOut(evt:MouseEvent):void{
//evt.target.scaleX=maxScale;
//evt.target.scaleY=maxScale;
//移除事件
evt.target.addEventListener(Event.ENTER_FRAME,onMinScale);
evt.target.removeEventListener(Event.ENTER_FRAME,onMaxScale);
}
function onMinScale(evt:Event):void{
//因为是缩小,所以是缩放有大逐渐变小,所以是减
evt.target.scaleX-=(evt.target.scaleX-minScale)*speed;
evt.target.scaleY-=(evt.target.scaleY-minScale)*speed;
//由于语言内置的问题,所以不是<1
if(evt.target.scaleX<1.01){
//此处重新设置缩放
evt.target.scaleX=minScale;
evt.target.scaleY=minScale;
//移除事件
evt.target.removeEventListener(Event.ENTER_FRAME,onMinScale);

}
}
//解释同上
function onMaxScale(evt:Event):void{
evt.target.scaleX+=(maxScale-evt.target.scaleX)*speed;
evt.target.scaleY+=(maxScale-evt.target.scaleY)*speed;
if(evt.target.scaleX>1.99){
evt.target.scaleX=maxScale;
evt.target.scaleY=maxScale;
evt.target.removeEventListener(Event.ENTER_FRAME,onMaxScale);

}


}

posted on 2011-10-17 22:30    阅读(609)  评论(0编辑  收藏  举报

导航