2012-03-31 84 views
0

我想知道如何在一個聽衆中編寫不同對象的點擊鼠標事件,如果有可能的話。在一個聽衆中帶來所有點擊鼠標事件

我想要做的就是這個監聽器通用於所有的按鈕點擊,如:

stage.addEventListener(MouseEvent.CLICK,clicker); 

function clicker (e:MouseEvent):void{ 

if (frame2_btn is clicked){ 
gotoAndPlay(3); 
stage.removeEventListener(MouseEvent.CLICK,clicker); 
} 

if (frame3_btn is clicked){ 
gotoAndPlay(4); 
stage.removeEventListener(MouseEvent.CLICK,clicker); 
} 

} 

什麼是做到這一點的呢?

回答

2

真的有可能寫出這樣的功能,如所有的事件冒泡通過層次結構(向上的方向)。您可以使用target屬性獲取負責生成該事件的對象。

這裏是供您參考(針對ActionScript和HAXE)

stage.addEventListener(MouseEvent.CLICK,clicker); 

function clicker (e:MouseEvent):void{ 

    if (e.target.name == "frame2_btn") { 
     gotoAndPlay(3); 
     stage.removeEventListener(MouseEvent.CLICK,clicker); 
    } 

    if (e.target.name == "frame3_btn"){ 
     gotoAndPlay(4); 
     stage.removeEventListener(MouseEvent.CLICK,clicker); 
    } 
} 

在你的每一個對象只是做一個額外的屬性名稱的演示代碼(雪碧,形狀,......其中還有不少的),這使得他們的識別更容易。

希望這有助於你

最佳迪帕克

+0

我複製粘貼你的代碼,但它似乎無法檢測的對象。我試圖追蹤,沒有出現。我在這裏做錯了什麼? – Helixfate 2012-04-01 10:38:02

0

如果你有一個簡單的按鈕,它應該工作沒有問題,如果它是一個影片剪輯,充當一個按鈕,那麼孩子會帶給你不同名稱。

你得到了什麼,當你嘗試

stage.addEventListener(MouseEvent.CLICK,clicker); 

function clicker (e:MouseEvent):void{ 
    trace(e.target.name); 
}