Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 15.09.2010, 12:18
Tr1te вне форума Посмотреть профиль Отправить личное сообщение для Tr1te Найти все сообщения от Tr1te
  № 1  
Ответить с цитированием
Tr1te
 
Аватар для Tr1te

Регистрация: Jun 2009
Сообщений: 461
Question Как правильно создать систему множества кнопок.

Какой из 2-х вариантов грамотней:

Первый вариант:
Добавляя на сцену кнопку, я так же создаю на ней слушателя, и каждой кнопке присваиваю ID, после сработки слушателя, я просто вынимаю через event ID.
(Этот вариант мне не нравиться, ибо количество слушателей будет равно, кол-ву кнопок)

Второй вариант:
Добавляя на сцену кнопку, отправлять ей ID. На сцену добавить один единственный EventListener, и при сработке кнопки, отправлять этот ID.

Какой из этих вариантов правильней и экономичней?

Старый 15.09.2010, 13:02
3p.station вне форума Посмотреть профиль Отправить личное сообщение для 3p.station Найти все сообщения от 3p.station
  № 2  
Ответить с цитированием
3p.station
 
Аватар для 3p.station

блогер
Регистрация: Oct 2009
Адрес: кочевник. Киев
Сообщений: 453
Записей в блоге: 5
не могу судить какой способ правильный (пусть это делают профи)

я всегда исользую контейнер с кнопками, на который вешаю слушатель. Кнопке присваиваю name и потом в хендлере ловлю e.tagret.name
__________________
мира и гармонии

Старый 15.09.2010, 13:10
Bgg вне форума Посмотреть профиль Отправить личное сообщение для Bgg Найти все сообщения от Bgg
  № 3  
Ответить с цитированием
Bgg
 
Аватар для Bgg

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
Цитата:
Сообщение от 3p.station Посмотреть сообщение
не могу судить какой способ правильный (пусть это делают профи)

я всегда исользую контейнер с кнопками, на который вешаю слушатель. Кнопке присваиваю name и потом в хендлере ловлю e.tagret.name
Не лень прописывать в нескольких местах name то?

Старый 15.09.2010, 13:18
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 4  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
По-моему кнопка должна быть самодостаточным и удобным в использовании элементом. Потому на неё вешаются слушатели автоматом уже при создании, чтоб обслуживать простоту задания обработчика клика и передачу туда параметра. По-моему пользователь сойдёт с ума от числа кнопок гораздо быстрее, чем появятся проблемы от слушателей) Т.е. экономичней 2-й, но первый должен быть тем, что делается почти автоматом, а для 2-го надо переколбасить класс кнопки.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 15.09.2010, 14:18
3p.station вне форума Посмотреть профиль Отправить личное сообщение для 3p.station Найти все сообщения от 3p.station
  № 5  
Ответить с цитированием
3p.station
 
Аватар для 3p.station

блогер
Регистрация: Oct 2009
Адрес: кочевник. Киев
Сообщений: 453
Записей в блоге: 5
а, речь идет о классе Кнопки... я чето подумал что Кнопка - обычный спрайт-мувик.

Цитата:
Не лень прописывать в нескольких местах name то?
а как по другому ? весь во внимании
__________________
мира и гармонии

Старый 15.09.2010, 14:36
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 6  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Способов не меряно ))

Например, при создании панели кнопок кидать каждую кнопку в массив, а потом при нажатии какой-либо кнопки получать из события таргетный объект и находить его в массиве. Потом по индексу массива предпринимать действия.

Но самое тупое - это создавать простые кнопки в цикле, каждой кнопке присваивать имя, содержащее индекс, а потом после нажатия кнопки парсить имя таргетного объекта и получат из него индекс.

Старый 15.09.2010, 14:57
nOobCrafter вне форума Посмотреть профиль Отправить личное сообщение для nOobCrafter Найти все сообщения от nOobCrafter
  № 7  
Ответить с цитированием
nOobCrafter

Регистрация: Nov 2008
Сообщений: 894
Записей в блоге: 1
а не проще ли отнаследоваться от компонента и добаивть нужное поле если таковое отсутствует? тебе ведь всеравно только одно значение в него запихнуть нужно, так что класс по сути будет состоять из нескольких строк

Старый 15.09.2010, 15:03
3p.station вне форума Посмотреть профиль Отправить личное сообщение для 3p.station Найти все сообщения от 3p.station
  № 8  
Ответить с цитированием
3p.station
 
Аватар для 3p.station

блогер
Регистрация: Oct 2009
Адрес: кочевник. Киев
Сообщений: 453
Записей в блоге: 5
Цитата:
Сообщение от mikhailk Посмотреть сообщение
Способов не меряно ))

Например, при создании панели кнопок кидать каждую кнопку в массив, а потом при нажатии какой-либо кнопки получать из события таргетный объект и находить его в массиве. Потом по индексу массива предпринимать действия.

Но самое тупое - это создавать простые кнопки в цикле, каждой кнопке присваивать имя, содержащее индекс, а потом после нажатия кнопки парсить имя таргетного объекта и получат из него индекс.
хех ... я походу очень туп
__________________
мира и гармонии

Старый 15.09.2010, 17:49
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 9  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
"самое тупое" - не означало "глупо до безобразия"
я вообще-то сторонник простых решений

Помимо "красоты" решений надо еще помнить о сопровождении кода потом. Ну, чтобы через два месяца не глядеть на собственный код с вопросом "интересно, как это работает и зачем тут вот эта зеленая штучка?"

Причем, как бывает иногда, именно эту "зеленую штучку" и нельзя трогать, потому что где-то что-то отваливается. Но это так, лирика.

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

Старый 15.09.2010, 17:55
3p.station вне форума Посмотреть профиль Отправить личное сообщение для 3p.station Найти все сообщения от 3p.station
  № 10  
Ответить с цитированием
3p.station
 
Аватар для 3p.station

блогер
Регистрация: Oct 2009
Адрес: кочевник. Киев
Сообщений: 453
Записей в блоге: 5
Цитата:
Сообщение от mikhailk Посмотреть сообщение
Помимо "красоты" решений надо еще помнить о сопровождении кода потом. Ну, чтобы через два месяца не глядеть на собственный код с вопросом "интересно, как это работает и зачем тут вот эта зеленая штучка?"

Причем, как бывает иногда, именно эту "зеленую штучку" и нельзя трогать, потому что где-то что-то отваливается. Но это так, лирика.
хехе оказывается не только у меня так

понял вас товарищ!
__________________
мира и гармонии

Создать новую тему Ответ Часовой пояс GMT +4, время: 14:36.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 14:36.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.