這對於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;
}
這看起來很有希望,不同之處在於分配'菜單= NativeApplication.nativeApplication.menu'給出以下編譯錯誤:**錯誤:NativeMenu中至不相關類型的mx:類型flash.display使用的值的隱式強制。控件:FlexNativeMenu。**任何想法? –
'menu'的類型應該是'NativeMenu'而不是'FlexNativeMenu'。 – NoobsArePeople2
當然,但'WindowedApplication'的'menu'屬性具有'FlexNativeMenu'類型,我無能爲力。不過,我開始認爲解決這個問題的正確方法是完全忽略'WindowedApplication.menu'並按照您的描述構建菜單,例如使用'myMenu = NativeApplication.nativeApplication.menu'作爲起點。 –