我正在使用Air應用程序(JavaScript,而不是Flex),並且無法使系統托盤(Mac上的Dock)菜單處理程序正常工作。當我右鍵單擊系統托盤(dock)圖標時,我可以看到我的自定義菜單,但是當我單擊菜單項時,沒有任何反應,回調代碼不會執行。我使用錯誤的事件類型嗎?除了article on Adobe Developer Connection之外,我找不到更多的信息,他們在那裏使用Event.SELECT,但它似乎不起作用。Adobe Air系統托盤/ Dock圖標菜單處理程序
var menu = new air.NativeMenu();
addMenuHandler(menu, 'Exit App', function (event) {
air.trace("It's not even getting here when the menu item is clicked.");
});
addMenuHandler(menu, 'Log Out', function (event) {
// TODO
});
air.NativeApplication.nativeApplication.icon.menu = menu;
// Tray/Dock Menu
if (menu && air.NativeApplication.supportsSystemTrayIcon) { // Windows
var iconLoader = new runtime.flash.display.Loader();
iconLoader.load(new air.URLRequest('/src/icons/app_16.png'));
iconLoader.contentLoaderInfo.addEventListener(air.Event.COMPLETE, function (event) {
air.NativeApplication.nativeApplication.icon.bitmaps = new Array(event.target.content.bitmapData);
air.NativeApplication.nativeApplication.icon.tooltip = 'App';
loadMainWindow();
});
} else if (menu && air.NativeApplication.supportsDockIcon) { // Mac
loadMainWindow();
}
function loadMainWindow() {
location.href = '/main.html';
}
function addMenuHandler (menu, caption, callback) {
var menuItem = new air.NativeMenuItem(caption);
menuItem.addEventListener(air.Event.SELECT, callback);
menu.addItem(menuItem);
}
試了一下。同樣的效果。 – Kvakes