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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 15.03.2012, 13:07
carrotoff вне форума Посмотреть профиль Отправить личное сообщение для carrotoff Найти все сообщения от carrotoff
  № 61  
Ответить с цитированием
carrotoff
 
Аватар для carrotoff

Регистрация: May 2010
Сообщений: 543
Цитата:
т.е. когда у меня был один хендлер, смотреть в таргет было плохо, а когда я сделал 2 хендлера, проверять таргет 2 раза стало хорошо?
Различие знаете target и currentTarget?
__________________
Вы грабите бедных людей. Парень со свирелью накажет вас. Хонгильдон (с)

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Тоже не понял... У Вас теперь подписка И на контейнер, И на каждую кнопку?
__________________
Reality.getBounds(this);

Старый 15.03.2012, 16:12
anmelegov вне форума Посмотреть профиль Отправить личное сообщение для anmelegov Найти все сообщения от anmelegov
  № 63  
Ответить с цитированием
anmelegov
[+4 07.04.12]
[+1 20.01.12]

Регистрация: Nov 2009
Адрес: Украина, Славутич
Сообщений: 263
Цитата:
Сообщение от Wolsh Посмотреть сообщение
Тоже не понял... У Вас теперь подписка И на контейнер, И на каждую кнопку?
да...

Старый 15.03.2012, 16:28
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 64  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Так если каждая кнопка вызывает свой конкретный хендлер, то зачем общий на контейнере?
Либо, если есть Большой Центральный Кликоразделитель, то зачем каждой кнопке свой конкретный слушатель?
Вы уж выберите одно из двух.
У меня в том примере слушатель на контейнер повешен с одной целью - отловить событие клика в фазе захвата и остановить его, пока событие не дошло до кнопок в контейнере.
А если Вы ловите все события контейнера и потом разбираетесь, что за кнопка породила событие и на основе этого решаете, что делать дальше, то кнопкам и не нужны собственные хендлеры. Это и есть та централизация, о которой говорил Мук. Надо только иметь систему отождествления кнопка-действие. Если отказались от колбэков, то надо либо завести словарь (Dictionary) в котором привязать каждой кнопке нужное действие (если сами действия принципиально разные) или привязать каждой кнопке какой-то параметр, который будет передаваться функции (если действия одинаковые, то есть один метод с разными параметрами).. Либо не заводить Словарь а просто хранить в кнопках этот параметр в поле класса кнопки.
__________________
Reality.getBounds(this);

Старый 15.03.2012, 16:36
anmelegov вне форума Посмотреть профиль Отправить личное сообщение для anmelegov Найти все сообщения от anmelegov
  № 65  
Ответить с цитированием
anmelegov
[+4 07.04.12]
[+1 20.01.12]

Регистрация: Nov 2009
Адрес: Украина, Славутич
Сообщений: 263
Цитата:
то зачем общий на контейнере?
там другие фичи висят.. долго объяснять в общем так надо
Цитата:
просто хранить в кнопках этот параметр в поле класса кнопки.
ну т.е. как у меня было сделано до этого да?
попробую для разнообразия сделать со словарем еще

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
ну т.е. как у меня было сделано до этого да?
Ну нет, у Вас хранился коллбэк, сам метод. Во-первых, это нифига не простой тип Function)) Хранилась ссылка. А здесь предполагается хранить простой тип, uint или String, просто идентификатор. Во-вторых, у Вас нарушался ООП, можно было подсунуть любой метод, и это вызвало бы ошибку, если бы метод не соответствовал правилам - например, требовал аргументов. Типизировать функцию нельзя, а идентификатор - запросто.
Кроме того, если действия одинаковые, например trace("21"), trace("22") и т.п., то можно просто хранить этот параметр (21, 22) в самой кнопке и иметь один метод, который сделает трейс, а не столько же методов, сколько есть кнопок)))). В общем хендлере получаете ссылку на кнопку (target) и спрашиваете у нее этот параметр. Передаете его в метод.
__________________
Reality.getBounds(this);

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

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

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


 


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


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