![]() |
Как удалить слушатели событий
Вложений: 1
Нужна помощь. Есть несколько кнопок класса MainButton созданные циклом.
В классе MainButton к каждой кнопке крепится слушатель. Как мне удалить слушатели всех этих кнопок, после клика на любую кнопку? Знаю что есть dispatchEvent, но как сразу удалить ВСЕ слушатели кнопок, а не только по какой делаешь клик? |
Код AS3:
|
Dip52, ваш код будет пытаться отписывать несуществующий слушатель. Слушателей вы удаляете в родителе, поэтому функция с названием onCLICK будет искаться в самом родителе, а не в кнопке. А нужно отписывать тот метод, который действительно подписан, то есть BUTTON.onCLICK. Но onClick - приватный метод, к нему нет доступа из родителя.
Цитата:
Короче, я предлагаю сделать так У вас в коде один существенный недстаток - каждая кнопка хранит в себе логику обработки нажатий других кнопок. Это, во-первых, здорово запутывает, а во-вторых усложняет работу с бОльшим количеством кнопок (для каждой новой кнопки придется лезть в класс и добавлять еще один case. Добавлять событие нажатия на кнопку тоже лучше в родителе, который эти кнопки на себя вешает (на экран). Я бы советовал пересмотреть общую структуру кода и сделать так: Класс кнопки вообще убирайте, использовать будем только SimpleButton Код AS3:
Код AS3:
|
Огромное спасибо! Вроде все просто, буду пробовать.
|
BAXTER, не нужно вставлять сюда скриншоты. Копируйте свой код и обрамляйте его тегами AS3. Думаете кому-то хочется перенабирать все это вручную, чтобы исправить у вас какую-то ошибку?
|
no problem. Хотел как лучше
|
| Часовой пояс GMT +4, время: 08:10. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.