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);
    }
}

メニューHOMEです。3 その他のメニュー ABOUT、BLOG、CONTACT ボタンは同じコードを使用していますが、機能の名前が変更されています。メニューボタンを2つだけクリックするとうまくいきます。しかし、3 番目のメニューをクリックしようとすると、おかしくなりました。例えばHOMEとABOUTをクリックすると、何千回クリックしても問題なくHOMEページとABOUTページに切り替わります。正常に動作しますが、CONTACT をクリックしようとすると... HOME ページが表示され、CONTACT を再度クリックすると、ABOUT が表示されます... など。それはクレイジーです。私の英語でごめんなさい。Flash CS4 と AS3 を使用しています。ありがとう!

4

1 に答える 1

0

1 つの MC に複数のイベント リスナーを追加する必要はありません。他のすべての関数が変更されたフレームでコピーペーストされたものである場合、それらのそれぞれにフレーム入力リスナーが追加されます。これらは累積homect.addEventListener(Event.ENTER_FRAME, nexttohome);されるため、2 回呼び出すとnexttohome、フレームごとに 2 回呼び出されます。homectおそらく、最後のフレームのムービー クリップのタイムラインにコードを配置して、このリスナーを完全に回避できます。stop(); MovieClip(root).gotoAndStop(4);

于 2013-08-01T14:22:40.117 に答える