
04.01.2010, 18:54
|
|
Регистрация: 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 кнопки и по ссылке выполняет функцию, которая определена для этой кнопки.
И всё работает.
|