【问题标题】:trying to use currentTarget for mouseEvent尝试将 currentTarget 用于 mouseEvent
【发布时间】:2017-03-26 07:43:42
【问题描述】:

我正在将 Adob​​e 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;
}
}

//--> 控制台日志{type: "click", target: a, currentTarget: lib.dayOneBtn, eventPhase: 3, bubbles: true…}

当我控制台记录 e.currentTarget 时,我可以从库中看到影片剪辑的链接,但我不确定在 switch 语句中使用什么属性。 lib.(链接名称)不起作用。

我能够通过检查状态而不是数组中的影片剪辑来完成这项工作。这是更新的代码:

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;
}

【问题讨论】:

  • 什么是lib?请提供mvce
  • lib 是 Adob​​e Animate CC 中库的引用。
  • 仅尝试链接名称...?

标签: javascript flash jquery-animate adobe


【解决方案1】:

如果这些是影片剪辑,您可以打开 .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;
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-11
    • 2014-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多