![]() |
Перезапись addEventListener
Есть ли на as3 возможность как-то перезаписать уже существующий листенер?
Например, есть кнопка с одним экшеном: Код AS3:
|
У метода addEventListener есть параметр priority, который поможет в вашей ситуации. Выставляйте слушателям нужные приоритеты, а при срабатывании листенера с наивысшим приоритетом, отключайте распространение события через e.stopImmediatePropagation().
Или просто удаляйте все предыдущие слушатели. |
Получается, что каждый раз нужно считать приоритет, который будет еще выше. Придется держать переменную с приоритетом :(
|
А вам принципиально надо несколько слушателей?
Почему бы не сделать все в одном слушателе: Код AS3:
|
Цитата:
|
Цитата:
|
можно еще отписываться от ненужного хендлера - тогда приоритеты не понадобятся )
|
А у меня вообще сумасшедшая идея. Отнаследовать от кнопки новый класс CustomButton, переопределить dispatchEvent, где на пресс-событие диспатчить кастомный пользовательский ивент CustomEvent со свойством data, в котором передавать и какие-то данные, потом просто слушать это событие на кнопке, и в з зависимости event.data.someVariable через какой-нить оператор switch например вызывать уже разные ф-ции в основном коде... Хотя я только учусь, но вот такое вдруг пришло в голову.
|
почему сумасшедшая? вполне нормальная идея
|
gumback, думаю, это самый адекватный вариант из всех предложенных.
|
| Часовой пояс GMT +4, время: 04:34. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.