Как определить, к какому классу относится экземпляр во флэш-памяти (as3)
Я относительно новичок во Flash и пытаюсь сделать небольшую игру. Для этого мне нужно определить, нажал ли игрок на самолет или птицу.
Я порождаю их с помощью addChild, и генерируется имя каждого экземпляра. Eventlistener присоединен к экземпляру.
Я пытался обнаружить это так, но это не сработало. Он обнаруживает щелчок (он печатает снимок: экземпляр, но не команды трассировки в 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));