множественное добавление и удаление слушателей, хочу понять нюансы
Доброго!
Давно заметил, что если написать к примеру так Код AS3:
Видимо, если слушатель удалён, то он просто игнорирует Так вот, отсюда вопрос Код AS3:
хочу это знать, возможно поможет искать не очевидные ошибки |
|
там про это не сказано, лишь обмолвились тем, что будет создано два события, если useCapture у них разный
Добавлено через 8 минут просто есть момент в коде, работает всё нормально, но ели создаётся 2 события, то у меня выходит утечка памяти, хотя и крайне медленная, если нет, то всё хорошо. |
Что-то вы путаетесь, уважаемый, наверное не до конца понимаете как оно работает.
1. Есть событие. 2. Есть слушатель. Событие - объект Event, созданный где-то в коде и отправленный на дисптечеризацию. Слушатель - связка "Событие" + "функция", которую хранит диспетчер. (EventDispatcher) Пишем так: Код AS3:
Цитата:
Если сделать вот так: Код AS3:
В справке об этом сказано. |
я понимаю, что вызов будет один, вопрос в том, создадутся ли 2 слушателя или флеш, увидев, что объект уже подписан на это событие, не станет создавать его повторно
|
Слушатель будет только один
|
Слушатели добавляются в хэш карту. Ее фишка в том, что ключи повторяться не могут, каждый ключ уникален, в отличие от простого массива. А так как ключем там выступает ссылка на метод-обработчик, то для одного метода может быть зарегистрирован только один слушатель. Так что сколько бы ты раз не писал добавление слушателя для одного типа события и одного обработчика, он все равно будет создан только в единственном экземпляре.
|
caseyryan спасибо за развёрнутый ответ
|
Часовой пояс GMT +4, время: 02:27. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.