CreateJS(Animate CC)点击获取电影实例名称
CreateJS (Animate CC) get movie instance name on click
我已经搜索了这个问题的解决方案,虽然我发现了几篇旧帖子,但其中 none 似乎解决了一个问题,而是找到了一些适合该特定任务的独特解决方法。所以我希望再次提出这个问题,看看是否有人可以提出更通用的建议。
我有一个功能,里面有一个开关,可以侦听按下了哪个影片剪辑,并且根据影片剪辑的名称,将采取特定的操作。由于 CreateJS 似乎无法识别动画片段名称,因此我已将自己的名称分配给各个动画片段,但是,如何轻松检查单击了哪个动画片段?在 AS3 中,使用 e.target.name
即可轻松完成
这是我的代码片段:
this.parentMovie.button1.name = "button1";
this.parentMovie.button2.name = "button2";
this.parentMovie.button3.name = "button3";
this.parentMovie.button1.addEventListener("click", onClick.bind(this));
this.parentMovie.button2.addEventListener("click", onClick.bind(this));
this.parentMovie.button3.addEventListener("click", onClick.bind(this));
function onClick(e)
{
console.log(this.parentMovie.button1.name); // returns the name of the movieclip just fine, so I know at least that is carried over.
switch(/* what do I need to put here?? */) // in AS3 it was e.target.name and it worked great. In JS it returns as null
{
case "button1":
// do something
break;
case "button2":
// do something
break;
case "button3":
// do something
break;
}
}
非常感谢!
name
属性 不会自动创建(尽管也许应该是)。您的 switch 语句应该很简单,只需使用变量引用即可:
function onClick(e)
{
console.log(this.parentMovie.button1.name); // returns the name of the movieclip just fine, so I know at least that is carried over.
switch(e.currentTarget) // Use currentTarget since the button might have children
{
case this.parentMovie.button1:
// do something
break;
case this.parentMovie.button2:
// do something
break;
case this.parentMovie.button3:
// do something
break;
}
}
它应该可以完成您想要做的事情。
我已经搜索了这个问题的解决方案,虽然我发现了几篇旧帖子,但其中 none 似乎解决了一个问题,而是找到了一些适合该特定任务的独特解决方法。所以我希望再次提出这个问题,看看是否有人可以提出更通用的建议。
我有一个功能,里面有一个开关,可以侦听按下了哪个影片剪辑,并且根据影片剪辑的名称,将采取特定的操作。由于 CreateJS 似乎无法识别动画片段名称,因此我已将自己的名称分配给各个动画片段,但是,如何轻松检查单击了哪个动画片段?在 AS3 中,使用 e.target.name
即可轻松完成这是我的代码片段:
this.parentMovie.button1.name = "button1";
this.parentMovie.button2.name = "button2";
this.parentMovie.button3.name = "button3";
this.parentMovie.button1.addEventListener("click", onClick.bind(this));
this.parentMovie.button2.addEventListener("click", onClick.bind(this));
this.parentMovie.button3.addEventListener("click", onClick.bind(this));
function onClick(e)
{
console.log(this.parentMovie.button1.name); // returns the name of the movieclip just fine, so I know at least that is carried over.
switch(/* what do I need to put here?? */) // in AS3 it was e.target.name and it worked great. In JS it returns as null
{
case "button1":
// do something
break;
case "button2":
// do something
break;
case "button3":
// do something
break;
}
}
非常感谢!
name
属性 不会自动创建(尽管也许应该是)。您的 switch 语句应该很简单,只需使用变量引用即可:
function onClick(e)
{
console.log(this.parentMovie.button1.name); // returns the name of the movieclip just fine, so I know at least that is carried over.
switch(e.currentTarget) // Use currentTarget since the button might have children
{
case this.parentMovie.button1:
// do something
break;
case this.parentMovie.button2:
// do something
break;
case this.parentMovie.button3:
// do something
break;
}
}
它应该可以完成您想要做的事情。