0

我有一个带有 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);
    }
}

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

4

1 回答 1

0

您不必将多个事件侦听器添加到一个 MC。看,如果所有其他函数都是用改变的帧复制粘贴的,那么它们中的每一个都会添加一个输入帧侦听器。这些是累积的,因此调用homect.addEventListener(Event.ENTER_FRAME, nexttohome);两次将导致nexttohome每帧两次调用。可能您可以通过将代码放在最后一帧的影片剪辑时间轴上来完全避免此侦听器homect,以调用stop(); MovieClip(root).gotoAndStop(4);

于 2013-08-01T14:22:40.117 回答