2013-08-01 41 views
0

我有一個菜單,4按鈕,用於切換到其他頁面內容,並且所有的它有這樣的代碼:我的flash菜單變得瘋狂。 AS3

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個菜單按鈕,它工作正常。但是當我嘗試點擊第三個菜單時,它會變得瘋狂。例如,當我點擊HOME和ABOUT時,無論點擊數千次,它都切換到HOME頁面和ABOUT頁面,沒有任何問題。它工作正常,但是當我嘗試點擊聯繫人時,然後...它會顯示HOME頁面,我重新點擊聯繫人,它會顯示關於...等等。這很瘋狂。對不起我的英文。我正在使用Flash CS4和AS3。謝謝!

回答

0

您必須不將多個事件偵聽器添加到一個MC。看看,如果所有其他功能都是這一個用改變的幀進行拷貝的話,那麼每個功能都會添加一個輸入幀監聽器。這些是累積性的,因此調用homect.addEventListener(Event.ENTER_FRAME, nexttohome);兩次將導致每幀調用nexttohome兩次。大概你可以通過把代碼放到最後一幀的homect電影剪輯的時間線上來完全避免這個聽衆,要致電stop(); MovieClip(root).gotoAndStop(4);