|
|
|||||
Регистрация: Mar 2013
Сообщений: 290
|
Определить наличие слушателя.
Всем привет, и с Наступающим.
Вопрос общего плана: можно ли определить висит ли на данном объекте слушатель? И как следствие, получить список всех слушателей, привязанных к объекту? Подозреваю, что это невозможно. Но что делать, если возникла такая задача? Например, архитектура такова, что нужно удалить слушатель, но не факт, что этого уже не произошло. Проще всего наверное оставить его для GC. Ну или менять архитектуру, упрощать, прояснять. |
|
|||||
Вы можете определить факт наличия слушателя для определенного типа событий.
Цитата:
__________________
משיח לא בא משיח גם לא מטלפן |
|
|||||
Можно смело удалять слушатель. Если он уже удален, то ничего не произойдет. А проверить список слушателей стандартными средствами невозможно. Если нужно, то можно написать обертку над Sprite, к примеру, и там регистрировать наличие всех слушателей. Но я бы так делать не стал.
|
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Непонятно, зачем оно надо.
Цитата:
__________________
Reality.getBounds(this); Последний раз редактировалось Wolsh; 31.12.2013 в 15:53. |
|
|||||
Регистрация: Mar 2013
Сообщений: 290
|
Цитата:
Цитата:
Цитата:
Цитата:
Но точно не уверен, много экспериментировал, может быть что-то не так проинтерпретировал. |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
Но, еще раз, в этом нет никакого смысла. Время от времени такой вопрос задают, но почти всегда это связано с неправильным пониманием "очищения объекта перед удалением из памяти". Объект должен отписываться от тех, кого слушает, а не отписывать тех, кто слушает его.
__________________
Reality.getBounds(this); |
|
|||||
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Цитата:
override public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void { _listeners.push( { type:type, listener:listener } ); super.addEventListener(type, listener, useCapture, priority, useWeakReference); } public function destroyEventListener():void { var length:int = _listeners.length; for (var i:int = 0; i < length; i++) { var type:String = _listeners[i].type; var listener:Function = _listeners[i].listener; this.removeEventListener(type, listener); } _listeners.length = 0; } |
|
|||||
Регистрация: Mar 2013
Сообщений: 290
|
Wolsh,
Цитата:
Akopalipsis, |
Часовой пояс GMT +4, время: 10:25. |
|
« Предыдущая тема | Следующая тема » |
Теги |
check , listener , object , Sprite |
|
|