尝试将currentTarget用于mouseEvent

时间:2016-11-12 01:54:08

标签: javascript flash jquery-animate adobe

我正在使用Adobe Animate进行项目,并且我有一系列影片剪辑,并附有事件侦听器。我试图找出一种方法来找出点击哪个动画片段并做出相应的响应。我的监听器功能如下所示:

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时,我可以看到来自库的movieclip的链接,但是我不确定在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;
}

1 个答案:

答案 0 :(得分:0)

如果这些是动画片段,您可以打开.name属性(链接名称)。只需在创建时为每个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;
    }
}