使用flash cs6和as3。
我想制作像这样的link菜单。当菜单上的mouse_over
时,蓝色矩形向右移动;当mouse_up
时,动画反转。
我在movieclip menuBlueHome
中制作了蓝色矩形。在那里,我让矩形从左向右移动(从第1帧到第10帧)。在第10帧,我制作了动作脚本:
stop();
当我遇到这个问题时,我仍在使用主菜单。当我将鼠标悬停在主菜单上时,蓝色矩形向右移动并在mouse_up
之前立即反转。这是mc之外的代码:
var menuBlueHome: MovieClip;
menuBlueHome.stop();
var direct: String;
btnHome.addEventListener(MouseEvent.MOUSE_OVER,onOverHome);
btnHome.addEventListener(MouseEvent.MOUSE_OUT,onLeaveHome);
btnHome.addEventListener(MouseEvent.CLICK,onClickHome);
function onOverHome(e:MouseEvent):void{
androidHome.visible = true;
menuBlueHome.play();
}
function onLeaveHome(e:MouseEvent):void{
androidHome.visible = false;
addEventListener(Event.ENTER_FRAME,onFrameHome);
}
function onClickHome(e:MouseEvent):void{
gotoAndStop(1);
}
function onFrameHome(event:Event):void {
if(menuBlueHome.currentFrame > 9) {
direct = "backward";
}
var backAmount:Number = menuBlueHome.currentFrame -1;
if(direct == "backward") {
menuBlueHome.gotoAndStop(backAmount);
}
}
我的代码出了什么问题吗?谢谢你的帮助。
答案 0 :(得分:1)
尝试使用此代码:
function onLeaveHome(e:MouseEvent):void{
androidHome.visible = false;
menuBlueHome.removeEventListener(Event.ENTER_FRAME, onFrameHome);
menuBlueHome.addEventListener(Event.ENTER_FRAME, onFrameHome);
}
function onFrameHome(event:Event):void {
var backAmount:Number = menuBlueHome.currentFrame - 1;
menuBlueHome.gotoAndStop(backAmount);
if(backAmount == 1) menuBlueHome.removeEventListener(Event.ENTER_FRAME, onFrameHome);
}
Here你有例子。
但是,我建议您使代码更具动态性,这里有another example。