打印

[AS3] 如何实现缓慢缩放呢?

各位同学,俺最近在学习如何做苹果菜单,具体来说就是当鼠标放到某个按钮时,图片缓慢放大,鼠标移开后,图标缓慢回复原来大小。我遇到的问题是,当缩放到一定程度时,再移动鼠标,程序不做反映,但我的本意是图标随时根据鼠标位置不同改变大小,代码如下



import fl.transitions.*;
import fl.transitions.easing.*;
var iconIns=new icon();
addChild(iconIns);
iconIns.x=stage.stageWidth/2;
iconIns.y=stage.stageHeight/2;
iconIns.addEventListener(MouseEvent.ROLL_OVER,addScalerZoomIn);
iconIns.addEventListener(MouseEvent.ROLL_OUT,addScalerZoomOut);
var deltaX:Number;
var scaleValue:Number;
iconIns.scaleX=1;

function addScalerZoomIn(e:Event)
{
       iconIns.addEventListener(Event.ENTER_FRAME,scalerZoomIn);
}

function scalerZoomIn(e:Event)
{
       //iconIns.x=(deltaX-stage.stageWidth/2)/2;
        deltaX=mouseX-iconIns.x
        scaleValue=1+100/(Math.abs(deltaX)+50);
       if((scaleValue-iconIns.scaleX)<0.01)
       {
              iconIns.removeEventListener(Event.ENTER_FRAME,scalerZoomIn);
       }
       iconIns.scaleX=iconIns.scaleY+=(scaleValue-iconIns.scaleX)*0.6;
       trace("x1=",iconIns.scaleX)
}


function addScalerZoomOut(e:Event)
{
       iconIns.removeEventListener(Event.ENTER_FRAME,scalerZoomIn);
       iconIns.addEventListener(Event.ENTER_FRAME,scalerZoomOut);
}

function scalerZoomOut(e:Event)
{
       iconIns.x=stage.stageWidth/2;
       if((iconIns.scaleX-1)<0.01)
       {
              iconIns.removeEventListener(Event.ENTER_FRAME,scalerZoomOut);
       }
       iconIns.scaleX=iconIns.scaleY-=(iconIns.scaleX-1)*0.8;
       trace("x2=",iconIns.scaleX)
}


swf文件
源文件

[ 本帖最后由 seacloud 于 2008-6-25 21:36 编辑 ]
附件: 您所在的用户组无法下载或查看附件,您需要注册/登录后才能查看!