Удаление всех слушателей событий во Flex - PullRequest
3 голосов
/ 04 августа 2010

Как я могу удалить все прослушиватели событий на всех компонентах одновременно, особенно если неизвестно, какие прослушиватели подключены к каждому компоненту?

Ответы [ 4 ]

3 голосов
/ 04 августа 2010

Вы можете переопределить mx.core.FlexSprite, от которого наследуется UIComponent, и сгенерировать массив созданных слушателей. Даг Мак Кун выложил исходный код здесь .

В его блоге написано: removeAllEventListeners () - удаляет все прослушиватели событий всех типов. Это полностью уничтожает все прослушиватели событий для компонента одновременно.

Дайте нам знать, если это сделает работу!

1 голос
/ 04 августа 2010

Нет!

Вы можете смоделировать что-то с помощью hasEventListener и willTrigger .Но, похоже, не существует очевидного способа удалить прослушиватели событий, фактически не зная имени метода.

Для чего вы хотите это сделать?

0 голосов
/ 11 августа 2010

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

http://elromdesign.com/blog/2010/07/16/easy-way-to-store-event-listeners-reference-prevent-memory-leaks/

0 голосов
/ 05 августа 2010

В этой задаче есть проблема в Adobe JIRA, проголосуйте, если считаете, что она важна для вас

https://bugs.adobe.com/jira/browse/SDK-14127

...