2010-11-06 64 views
2

我有一個腳本,一旦點擊(按鈕)一些其他的東西隱藏然後一旦再次點擊它重新顯示。問題是一旦隱藏它再也沒有顯示這裏是腳本:Flash AS3切換可見

menu_start.addEventListener(MouseEvent.CLICK, myClickFunction); 


function myClickFunction(event:MouseEvent) { 

     // Hide the first and show the next here 
     if (menu_menu.visible == true){ 
     menu_menu.visible = false; 

     } 
     if (menu_menu.visible == false) { 
      menu_menu.visible == true; 
     } 

} 

非常感謝。

+0

還有什麼事發生在menu_menu的DisplayObject單擊該按鈕時? – Jordan 2010-11-07 01:05:33

回答

4

的原因是,當你點擊 按鈕,它不隱藏,而是再次當 你點擊相同的按鈕它 沒有顯示回

如果我在上述說法中錯了,請糾正我。

現在嘗試一下我說的話,有兩個按鈕隱藏和顯示。創建兩個新函數並嘗試一下,如果這有效,那麼你的邏輯中缺少一些東西,如果這不起作用,那就讓我們知道。

也請試試這個。

function myClickFunction(event:MouseEvent) { 

     // Hide the first and show the next here 
     if (menu_menu.visible){ 
     menu_menu.visible = false; 

     } else { 
     menu_menu.visible = true; 
     } 

} 

另一個問題可能是,當你點擊按鈕可能是它沒有得到menu_menu屬性再次作爲其隱藏或銷燬。它是在同一個組件中還是從其他地方調用?

+0

「menu_menu.visible == true;」應該是「menu_menu.visible = true;」因爲值「真」需要分配沒有測試。 – Jordan 2010-11-07 01:07:46

+0

糾正錯字,謝謝 – Thalaivar 2010-11-07 16:23:41

2

在您的第二個「if」語句中,您沒有將.visible設置爲true,而是檢查兩個等號是否等於true。

function myClickFunction(event:MouseEvent) { 

    // Hide the first and show the next here 
    if (menu_menu.visible == true){ 
    menu_menu.visible = false; 

    } 
    if (menu_menu.visible == false) { 
     menu_menu.visible = true; 
    } 

}

+0

現在當我這樣做,它甚至不會隱藏 – DonJuma 2010-11-06 17:43:50

+2

你是最後一個if語句之前缺少一個else,這就是爲什麼它不再隱藏。 – Allan 2010-11-07 03:34:26

9

我更喜歡在短形式編寫這樣的邏輯:

menu_menu.visible = !menu_menu.visible; 
+2

+1這是接受的答案。 – Allan 2010-11-07 03:37:55

0

嘗試使用阿爾法= 0.1而不是可見=假和α= 1,而不是可見=真。

問題是,當您使用visible = false時,它也會禁用鼠標交互,所以您的第二次單擊不會觸發。

1

繼承人基於Glens的建議,我提出了更好的版本,可以隨意使用。

Buttonname.addEventListener (MouseEvent.CLICK, FunctionName); 
function FunctionName(event:MouseEvent) { 

    if (name1.alpha == 1){ 
    name1.alpha = 0;} else {name1.alpha = 1} 
} 

什麼這個腳本要說的是如果點擊,然後它就會改變阿爾法值設置爲0時NAME1(影片剪輯元件)具有阿爾法值等於1,否則將阿爾法值更改爲1 。

這也將與「看得見的」職能的工作:

Buttonname.addEventListener (MouseEvent.CLICK, FunctionName); 
function FunctionName(event:MouseEvent) { 

    if (name1.visible == true){ 
    name1.visible = false;} else {name1.visible = true} 
}