2016-11-12 38 views
0

我正在使用Adobe Animate作爲項目,並且我有一個事件偵聽器附加到它們的動畫片段數組。我試圖找出一種方法來找出哪個movieclip被點擊並作出相應的響應。我的聽衆功能如下:試圖爲mouseEvent使用currentTarget

function navigationControls(e){ 

console.log(e) 

switch(e.currentTarget){ 
    case lib.dayOneBtn: 
     console.log("add day 1"); 
     break; 

    case lib.dayTwoBtn: 
     console.log("add day 2"); 
     break; 

    case "lib.dayThreeBtn": 
     console.log("add day 3"); 
     break; 
} 
} 

//--> console log {type: "click", target: a, currentTarget: lib.dayOneBtn, eventPhase: 3, bubbles: true…}

當我CONSOLE.LOG的e.currentTarget,我可以看到從庫中影片剪輯的鏈接,但我不知道屬性在switch語句中使用。 lib。(鏈接名稱)不起作用。

我能夠通過檢查狀態上的movieclip而不是數組來檢查這個工作。以下是更新後的代碼:

case navContainer.dayOneBtn: 
     console.log("add day 1"); 
     break; 

    case navContainer.dayTwoBtn: 
     console.log("add day 2"); 
     break; 

    case navContainer.dayThreeBtn: 
     console.log("add day 3"); 
     break; 
} 
+0

什麼是'lib'?請提供[mvce](http://stackoverflow.com/help/mcve) – Damon

+0

lib是Adobe Animate CC中庫的參考。 – icekomo

+0

嘗試僅鏈接名稱...? –

回答

0

如果這些是你可以在。名稱屬性(鏈接名稱)切換影片剪輯。只需在創建時向每個MC分配一個:

dayOneButton = new DayMC(); 
dayOneButton.name = "dayOne"; 

dayTwoButton = new DayMC(); 
dayTwoButton.name = "dayTwo"; 

function navigationControls(e:Event) 
{ 
    var clickedMC:MovieClip = e.currentTarget as MovieClip; 

    switch(clickedMC.name) 
    { 
     case "dayOne": 
      // do stuff 
      break; 
    } 
}