Как добавить подменю в существующий экземпляр FlexNativeMenu? - PullRequest
1 голос
/ 12 августа 2011

Я полностью смущен этим.Adobe Flex WindowedApplication имеет свойство 'menu', которому по умолчанию назначается экземпляр FlexNativeMenu, который используется для создания собственного дерева меню для приложения.

Например, в OS Xесли я создаю WindowedApplication, я получаю стандартные меню «Меню приложения», «Файл», «Редактировать» и «Окно», созданные при запуске.

Вопрос в том, как добавить дополнительные меню к этому без создания совершенно нового меню?Я хочу использовать меню OS X по умолчанию в качестве отправной точки и добавить свое собственное.

Если я назначу menu = new FlexNativeMenu;, я просто получаю полностью пустую панель приложения без меню вообще.

1 Ответ

1 голос
/ 12 августа 2011

Это будет работать по-разному для Windows и Mac OS. Мой код выглядит примерно так:

if (isWindows)
{
   // Windows lacks a menu by default, create one.
   menu = new NativeMenu();
}
else if (isMac)
{
   // Mac OS has a default menu, get a reference to it.
   menu = NativeApplication.nativeApplication.menu;
}

buildMenu(menu);

Функция buildMenu() затем выполняет большую работу по созданию меню.

function buildMenu(menu:NativeMenu):NativeMenu
{
    var menuItem:NativeMenuItem = menu.addItem(new NativeMenuItem("Menu Label"));
    var menuItem.name = "menuLabelName";
    var menuItem.data = myDataForThisMenuItem;
    menuItem.subMenu = buildSubMenu();

    return menu;
}

function buildSubMenu():NativeMenu
{
    var subMenu:NativeMenu = new NativeMenu();
    var menuItem:NativeMenuItem;

    menuItem = subMenu.addItem(new NativeMenuItem("Sub Menu Label"));
    menuItem.name = "subMenuName";
    menuItem.data = subMenuData;

    return subMenu;
}
...