![]() |
Делаю меню. Не представляю как назначить команды.
Делаю двухуровневое меню. Меню генерируется на основе данных в двумерном массиве. Пункты меню имеют событие "нажали". Я думаю и не могу сообразить, как заставить при нажатии на пункты меню вызывать функцию или метод и можно ли передать им параметры?
Меню типа "файл правка вид". Программно создал массив. Меню сгенерилось. А как мне теперь заставить по этому событию запускать windows.show("справка"), а по другому функцию foo()? Сам не очень понимаю, что хочу. Нужны бинды что ли) На край просто подскажите изящную реализацию многоуровнего меню) благодарен. |
Просто диспатчите клик.
В обработчике проверяете evt.target - какое у него свойство "commandName" Далее просто switch, который выполняет что-то еще в зависимости от commandName Можно сделать несколько своих событий. Тогда можно разнести этот огромный switch на несколько маленьких внутри обработчиков каждого из видов событий. Событию можно сделать свойство commandName, а тип события будет определять тип обработчика |
А еще можно в xml или с чего у Вас там генерится меню прописать названия функций а потом вызывать их с getDefinitionByName.
Но можно и гибридное меню (как я обычно делаю). Код AS3:
|
Цитата:
Можно вместо функции можно сохранить в узле объект-команду, которую узел дернет при клике по нему. Недостатки по сравнению с сохранением имени функции и вызовом по getDifinitionByName - ну разве что из xml-ки не сгенеришь, ну и при создании меню все комманды/методы должны существовать Достоинтва - не опечатаешься в имени функции |
А есть что-нибудь на подобии:
Код AS3:
|
есть
Код AS3:
|
| Часовой пояс GMT +4, время: 19:22. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.