我对此完全感到困惑。 Adobe Flex WindowedApplication
具有“菜单”属性,默认情况下会为其分配一个FlexNativeMenu
实例,该实例用于为应用程序创建本机菜单树。
例如,在OS X上,如果我创建WindowedApplication
,我会在启动时创建标准的“应用程序菜单”,“文件”,“编辑”和“窗口”菜单。
问题是,如何在不创建全新菜单的情况下追加其他菜单?我想使用默认的OS X菜单作为起点并添加我自己的菜单。
如果我指定menu = new FlexNativeMenu;
,我只会得到一个完全没有菜单的应用栏。
答案 0 :(得分:1)
对于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;
}