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

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

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

Регистрация: Dec 2008
Сообщений: 41
По умолчанию Организация слушателей в приложении

Всех с новым годом!
У меня такой вопрос...
Делаю свою первую серьёзную игрушку-стратегию. У меня на экране пять различных блоков пользовательского меню. В каждом из блоков от 4-х до 12 кнопок. Всего 34 кнопки. Вот я и думаю, по поводу организации слушателей к этим кнопкам. Если к каждой сразу прикрепить слушателей на наведение, на уход с кнопки и на нажатие, то это будет больше ста слушателей которые будут слушать события. Тормозить это наверное будет жутко...
Возникла идея их всех разделить и сделать следующую архитектуру. Кнопки каждого блока меню находятся в своём контейнере, каждый контейнер с кнопками помещается в свою очередь в один общий спрайт-контейнер для кнопок меню. За этим спрайтом следит один слушатель. Он отслеживает событие MOUSE_MOVE. Как только возникает событие в области кнопок меню, запускается функция, которая вычисляет координаты мышки и сравнивает их с координатами клипов-контейнеров блоков меню. Если координаты мышки находятся над блоком меню, к примеру № 3, то запускаются слушатели для кнопок этого блока меню. По событию MOUSE_OUT с кнопок этого блока меню все слушатели для этого блока удаляются.
Вот такая идея. Но мне она кажется тоже довольно громоздкой. Вот хочу спросить, может быть существует более элегантное решение для подобных случаев и не нужно изобретать велосипед?...

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

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

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


 


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


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