如何在 flash(as3) 中检测实例来自哪个类
Posted
技术标签:
【中文标题】如何在 flash(as3) 中检测实例来自哪个类【英文标题】:How to detect what class an instance is from in flash(as3) 【发布时间】:2016-01-05 03:52:28 【问题描述】:我对 Flash 比较陌生,我正在尝试制作一个小游戏。 为此,我需要检测玩家是否点击了飞机或鸟。
我使用 addChild 生成它们,并生成每个实例的名称。 事件监听器附加到实例。
我尝试这样检测它,但它无法正常工作。 它检测到点击(它打印出 shot: instance 但不是 if 中的跟踪命令),但没有被点击。
function shoot(e: MouseEvent): void
trace("shot: "+ e.target.name);
if (e.target is Plane)
trace("shot plane");
e.target.parent.removeChild(e.target);
gotoAndStop(3);
if (e.target == Bird)
trace("shot bird");
score += 1;
e.target.parent.removeChild();
有人给点小费吗?
【问题讨论】:
【参考方案1】:尝试使用e.currentTarget
而不是e.target
。
if (e.currentTarget is Plane)
...
if (e.currentTarget is Bird)
...
事件的当前目标是对您添加事件侦听器的项目的引用。另一方面,目标是实际点击的项目(可能与当前目标相同,或者它的后代/子对象)
您可以使用getQualifiedClassName
查看对象类型:
trace(flash.utils.getQualifiedClassName(e.currentTarget));
【讨论】:
以上是关于如何在 flash(as3) 中检测实例来自哪个类的主要内容,如果未能解决你的问题,请参考以下文章