各位同学,俺最近在学习如何做苹果菜单,具体来说就是当鼠标放到某个按钮时,图片缓慢放大,鼠标移开后,图标缓慢回复原来大小。我遇到的问题是,当缩放到一定程度时,再移动鼠标,程序不做反映,但我的本意是图标随时根据鼠标位置不同改变大小,代码如下
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 编辑 ]
附件:
您所在的用户组无法下载或查看附件,您需要注册/登录后才能查看!