动画CC(画布)如何访问e.currentTarget中的变量?

时间:2018-01-19 15:22:20

标签: javascript scope movieclip adobe-animate

如果我在根时间轴上有一个movieClip,其实例名称为box。 在MC内部,我有一个彩色方形和以下代码:

myNum = 5;

编辑:在绝望的行为中得到任何回应我也在下面的一行:

var myNum = 3;

只是为了覆盖我的所有基础,但仍然没有任何值的输出响应 编辑结束。

在根时间轴上我有:

this.box.addEventListener("click", clickHandler);

function clickHandler(e) {
    console.log(e.currentTarget.myNum);
}

这会返回undefined。我如何访问myNum?

2 个答案:

答案 0 :(得分:0)

请告诉我这是否适合您要完成的任务。

TypeError: not all arguments converted during string formatting

我们只是为节点分配一个数据属性,这样您就可以访问要附加到元素的任何数据

答案 1 :(得分:0)

要访问对象内部的变量,该变量必须是对象上的属性(键)。 myNum不是e.currentTarget的属性,只是声明变量不会给任何随机对象提供属性...你必须在对象上设置属性,如下所示:

this.box.myNum = 3;
this.box.addEventListener('click', clickHander);
...

虽然在Jose CC的回答中提及,但在元素上放置自定义属性并不标准(尽管它会起作用),应该使用data-属性来完成它。

var box = document.getElementById('box');
box.dataset.myNum = 3;
box.addEventListener('click', clickHandler);

function clickHandler(e) {
  console.log(e.currentTarget.dataset.myNum);
}
<div id="box">My box</div>