2011-05-18 120 views
1

我正在使用actionscript 3來製作一個點並點擊遊戲。第1幀上有兩個按鈕,按鈕1和2,第3幀有兩個按鈕,按鈕A和B.如何在點擊Flash中的另一個按鈕後隱藏按鈕?

我想它使我對以後單擊第1幀按鈕1,第3幀將按鈕A被隱藏,或者當我點擊第1幀的按鈕2時,第3幀的按鈕B將被隱藏。隱藏的按鈕在點擊時不起任何作用。

在此先感謝

回答

3

如果您嘗試刪除的東西是不是在顯示列表中還Flash將拋出一個錯誤。我想這裏最好的解決方案是設置一個時間軸變量來跟蹤你按下了哪個按鈕。事情是這樣的:

第1幀

var b1:Boolean = false; 
var b2:Boolean = false; 

button1.addEventListener(MouseEvent.MOUSE_DOWN, checkButton); 
button2.addEventListener(MouseEvent.MOUSE_DOWN, checkButton); 

function checkButton(e:MouseEvent):void 
{ 
    if(e.target.name == button1) b1 = true; 
    else b2 = true; 

    gotoAndPlay(3); 
} 

上框架3

myButtomA.visible = false; 
myButtomB.visible = false; 

if (b1) myButtomA.visible = true; 
if (b2) myButtomB.visible = true; 
1

有很多方法可以從顯示列表中刪除對象,或以其他方式將其隱藏。例如:

button1.addEventListener(MouseEvent.MOUSE_DOWN, removeButton); 

function removeButton(e:MouseEvent):void 
{ 
buttonContainer.removeChild(otherButton); 
} 

您還可以將目標按鈕「visibility」屬性設置爲false。 非常非常簡單,您應該可以根據需要修改此代碼段。

關於另一個話題。

我總是鼓勵人們遠離發展中國家在時間軸上的互動。它只會帶來混亂,尤其是當你在AS3中如此強的面向對象的工具...

無論哪種方式 - 乾杯,祝你好運。

  • 更新 - 爲應對老年退休金計劃最後的評論:

沒問題 - 儘管它是一個相當深的問題,根據您的經驗。主要的事情是參與AS3的面向對象功能,並通過代碼驅動大部分應用程序。

項目是這樣的:在佛羅里達州的功能主要是作爲資產的容器(如果你使用嵌入功能,即使不說),跟單,空的時間表框架。然後,主文檔類負責啓動和構建項目的所有方面 - 從數據的加載和控制到創建和添加顯示列表對象,以建立和控制用戶交互。經典軟件包/類設計用於創建數十個或數百個單獨的.AS文件。時間線仍然用於創建複雜的動畫,但很少涉及任何代碼(保存stop();這裏或那裏)。

當我剛剛學習這個時 - 我得到了一個good book,並擊中了很多谷歌來找出AS3的基本要素,並且只是從那裏去了。做一些簡單的項目,你可以看到你可以很快得到的東西。

從這樣的工作的好處不能被誇大了。

讓我知道你是否還有其他問題。祝你好運!

+1

完全同意你的 「遠離時間軸遠離」 情緒。但是,考慮到他在時間線上,並且他試圖隱藏不在顯示列表中的其他幀的按鈕,此代碼不會按原樣工作。他需要一些能夠管理應用程序狀態的東西。或者他需要將按鈕重新排列在一個框架上。 – 2011-05-18 16:28:22

+0

那麼這些按鈕代表的物體放置在自己的背景中,或者像建築物外的建築物內的電視或建築物外的汽車那樣的風景。有沒有一個例子可以提供,不涉及時間線的工作? – user701510 2011-05-18 18:42:00

+0

@Alex。你是完全正確的。我很少處理時間表,我完全分開了那些細節。一個很好的例子,完全證明了我的觀點......大聲笑。 @尼爾森的回答非常準確,操作人員需要創建另一個全局可見的變量來指示按鈕是否顯示。然後應該點擊按鈕1來設置。 – Bosworth99 2011-05-18 19:58:56

相關問題