Показать сообщение отдельно
Старый 04.01.2010, 18:54
zaidite вне форума Посмотреть профиль Отправить личное сообщение для zaidite Найти все сообщения от zaidite
  № 6  
Ответить с цитированием
zaidite

Регистрация: Dec 2008
Сообщений: 41
Всё получилось. Организовал следующим образом...

Есть общий для меню класс - Menu, он создаёт и размещает на сцене блоки меню. И есть классы которые создают блоки меню. left_menu, right_menu, top_menu, down_menu.

В этих классах создаются группированные блоки с кнопками меню и определяются функции, что какая кнопка делает. При создании кнопок назначаю уникальный номер для каждой кнопки id = 0... И создаю для кнопки массив в который сохраняю ссылку на функцию, которая назначена кнопке и другую полезную информацию. Этот массив помещаю в общий массив с функциями actionsArr который находится в классе Menu. Получается такой себе двумерный массив.

В классе кнопки сделал слушатель MOUSE_OVER, который, в случае события запускает функцию подсветки кнопки и создаёт слушатели MOUSE_OUT и MOUSE_CLICK. В случае MOUSE_OUT снимается подсветка с кнопки и удаляются MOUSE_OUT и MOUSE_CLICK.

А в случае MOUSE_CLICK вызывается функция create_action() в Menu, которой передаётся id-номер кнопки на которой кликнули. Функция create_action() ищет в массиве actionsArr элемент, порядковый номер которого совпадает с переданным id кнопки и по ссылке выполняет функцию, которая определена для этой кнопки.

И всё работает.