flash as3 проверить прослушиватель событий - PullRequest
6 голосов
/ 01 марта 2011

Есть ли способ проверить, существует ли уже прослушиватель событий, чтобы удалить его?

stage.addEventListener(MouseEvent.CLICK, clickdownfunction);

В принципе, я хочу удалить слушателя, но иногда он уже удален, поэтому я хочу проверить, существует ли он, и если он существует, то удалить его.

Возможно ли это?

Ответы [ 4 ]

16 голосов
/ 01 марта 2011

Проверьте функцию hasEventListener() из

https://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/events/IEventDispatcher.html#hasEventListener()

Я не совсем уверен, почему вы хотите сделать эту проверку.Удаление несуществующих прослушивателей не приведет к исключениям или ошибкам отбрасывания Flash, поэтому проверка просто добавляет ненужные накладные расходы.

8 голосов
/ 01 марта 2011

вы не можете проверить, зарегистрирована ли определенная функция в качестве прослушивателя, вы можете проверить, зарегистрирован ли тип.Это можно сделать следующим образом:

hasEventListener(type:String):Boolean

В качестве альтернативы вы можете просто позвонить removeEventListener, если он не зарегистрирован, он просто проигнорирует вызов.

Надеюсь, что поможет,

3 голосов
/ 01 марта 2011

Вот код, необходимый для удаления прослушивателя событий, только если он активен:

if(stage.hasEventListener(MouseEvent.CLICK))
     stage.removeEventListener(MouseEvent.CLICK, clickdownfunction);
1 голос
/ 10 ноября 2011

Вы также можете использовать Пальцы :

 on(stage).click -= clickdownfunction;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...