尝试将 currentTarget 用于 mouseEvent

Posted

技术标签:

【中文标题】尝试将 currentTarget 用于 mouseEvent【英文标题】:trying to use currentTarget for 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 中库的引用。 仅尝试链接名称...? 【参考方案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;
    

【讨论】:

以上是关于尝试将 currentTarget 用于 mouseEvent的主要内容,如果未能解决你的问题,请参考以下文章

如何在 jquery 中获取 currentTarget 的宽度和高度?

AS3 MouseEvent.RIGHT_MOUSE_UP 不起作用

React Native——onPress 从“currentTarget”中提取 id

currentTarget,this,target区别

游戏Lua脚本 - 使用couroutine或民意调查?

e.target 和 e.currentTarget 之间的区别