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