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