У меня есть несколько слушателей событий, которые мне нужно удалить, если они больше не нужны. Я последовал совету нескольких других и включал в себя RemoveEventListener внутри самой функции, как:Как правильно удалить прослушиватель событий?
object1.addEventListener(MouseEvent.MOUSE_DOWN, function StartMove(event:MouseEvent):void
{
mousePoint = new Point(MC.mouseX, MC.mouseY);
objectOffset = new Point(int(mousePoint.x - object1.x), int(mousePoint.y - object1.y));
mousePoint.y -= objectOffset.y;
mousePoint.x -= objectOffset.x;
mousePressed = true;
event.currentTarget.removeEventListener(event.type, StartMove);
});
, но это просто создает слушателя, а затем удаляет его, когда его использовать один раз. Функции прослушивателя событий создаются внутри большей функции (MouseMoves()), поскольку они используют локальные переменные в MouseMoves(). (не уверен, что это подходящий способ сделать это.) Так что если я пытаюсь удалить слушателей извне, они не видят имя функции для удаления, и я не могу объявить функции вне MouseMoves() cus, они используют переменные внутри него.
чувствую, что это плохой дизайн с моей стороны, но я не уверен, где?
есть ли «правильный» более стандартный способ удаления прослушивателя событий?
спасибо.