2014-05-02 117 views
0

我正在使用Air應用程序(JavaScript,而不是Flex),並且無法使系統托盤(Mac上的Dock)菜單處理程序正常工作。當我右鍵單擊系統托盤(dock)圖標時,我可以看到我的自定義菜單,但是當我單擊菜單項時,沒有任何反應,回調代碼不會執行。我使用錯誤的事件類型嗎?除了article on Adobe Developer Connection之外,我找不到更多的信息,他們在那裏使用Event.SELECT,但它似乎不起作用。Adob​​e 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); 
} 

回答

0

也許嘗試使用更詳細的方法,而不是使用別名: 'window.runtime.flash.events.Event',而不是'air.Event'?