![]() |
Как правильно создать систему множества кнопок.
Какой из 2-х вариантов грамотней:
Первый вариант: Добавляя на сцену кнопку, я так же создаю на ней слушателя, и каждой кнопке присваиваю ID, после сработки слушателя, я просто вынимаю через event ID. (Этот вариант мне не нравиться, ибо количество слушателей будет равно, кол-ву кнопок) Второй вариант: Добавляя на сцену кнопку, отправлять ей ID. На сцену добавить один единственный EventListener, и при сработке кнопки, отправлять этот ID. Какой из этих вариантов правильней и экономичней? |
не могу судить какой способ правильный (пусть это делают профи)
я всегда исользую контейнер с кнопками, на который вешаю слушатель. Кнопке присваиваю name и потом в хендлере ловлю e.tagret.name |
Цитата:
|
По-моему кнопка должна быть самодостаточным и удобным в использовании элементом. Потому на неё вешаются слушатели автоматом уже при создании, чтоб обслуживать простоту задания обработчика клика и передачу туда параметра. По-моему пользователь сойдёт с ума от числа кнопок гораздо быстрее, чем появятся проблемы от слушателей) Т.е. экономичней 2-й, но первый должен быть тем, что делается почти автоматом, а для 2-го надо переколбасить класс кнопки.
|
а, речь идет о классе Кнопки... я чето подумал что Кнопка - обычный спрайт-мувик.
Цитата:
|
Способов не меряно ))
Например, при создании панели кнопок кидать каждую кнопку в массив, а потом при нажатии какой-либо кнопки получать из события таргетный объект и находить его в массиве. Потом по индексу массива предпринимать действия. Но самое тупое - это создавать простые кнопки в цикле, каждой кнопке присваивать имя, содержащее индекс, а потом после нажатия кнопки парсить имя таргетного объекта и получат из него индекс. |
а не проще ли отнаследоваться от компонента и добаивть нужное поле если таковое отсутствует? тебе ведь всеравно только одно значение в него запихнуть нужно, так что класс по сути будет состоять из нескольких строк
|
Цитата:
|
"самое тупое" - не означало "глупо до безобразия" :)
я вообще-то сторонник простых решений Помимо "красоты" решений надо еще помнить о сопровождении кода потом. Ну, чтобы через два месяца не глядеть на собственный код с вопросом "интересно, как это работает и зачем тут вот эта зеленая штучка?" Причем, как бывает иногда, именно эту "зеленую штучку" и нельзя трогать, потому что где-то что-то отваливается. Но это так, лирика. На вопрос автора, очевидно, ответ такой - лучше выработать одно решение и единообразно его применять в разных приложениях. А за количество листенеров, имхо, бороться в подавляющем большинстве случаев бессмысленно. Их же не тысячи. |
Цитата:
понял вас товарищ! |
| Часовой пояс GMT +4, время: 23:52. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.