我的flash菜单很疯狂。 AS3

时间:2013-08-01 14:13:03

标签: actionscript-3 flash actionscript

我有一个带4个按钮的菜单,用于切换到其他内容页面,所有内容都有此代码:

function chuyenhome(e:MouseEvent):void{
    homect.addEventListener(Event.ENTER_FRAME, nexttohome);
    btn_home.gotoAndStop(15);
    if (btn_about.currentFrame == 15){
    btn_about.gotoAndPlay(16);
    }
    if (btn_menu.currentFrame == 15){
    btn_menu.gotoAndPlay(16);
    }
    if (btn_contact.currentFrame == 15){
    btn_contact.gotoAndPlay(16);
    }
    homect.gotoAndPlay(31);
}
function nexttohome(e:Event):void{
    if (homect.currentFrame>=homect.totalFrames){
        MovieClip(root).gotoAndStop(4);
    }
}

这是菜单HOME。 3其他菜单关于,BLOG,CONTACT按钮使用相同的代码,但重命名功能。如果我只点击2菜单按钮,它工作正常。但是当我尝试点击第三个菜单时,它会变得疯狂。例如,当我点击HOME和ABOUT时,无论是否点击它一千次,它都会切换到HOME页面和ABOUT页面没有问题。它工作正常,但当我尝试点击CONTACT,然后......它显示HOME页面,我重新点击CONTACT,它显示关于......等等。这很疯狂。抱歉我的英文。我正在使用Flash CS4和AS3。谢谢!

1 个答案:

答案 0 :(得分:0)

您不必向一个MC添加多个事件侦听器。看看,如果所有其他功能都是这个用复制帧复制的,那么每个功能都会添加一个输入帧监听器。这些是累积的,因此调用homect.addEventListener(Event.ENTER_FRAME, nexttohome);两次将导致每帧两次调用nexttohome。通过将代码放在最后一帧homect影片剪辑的时间轴上,调用stop(); MovieClip(root).gotoAndStop(4);

,您可以完全避免使用此侦听器