javascript - Adobe Air 系统托盘/Dock 图标菜单处理程序

标签 javascript air adobe dock tray

我正在开发 Air 应用程序(JavaScript,而不是 Flex),但我无法使系统托盘(Mac 上的停靠栏)菜单处理程序正常工作。当我右键单击系统托盘(dock)图标时可以看到我的自定义菜单,但是当我单击菜单项时,没有任何反应,回调代码不被执行。我使用了错误的事件类型吗?除了article on Adobe Developer Connection之外我找不到更多信息他们在那里使用 Event.SELECT,但它似乎不起作用。

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);
}

最佳答案

试试这个:

menuItem.addEventListener(Event.SELECT, callback);

进一步阅读:http://www.adobe.com/devnet/air/flash/quickstart/articles/stopwatch_dock_system_tray.html

关于javascript - Adobe Air 系统托盘/Dock 图标菜单处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23437879/

相关文章:

c++ - 安全地将 uint8_t 转换为 wchar_t

python - 两种 AEM 环境中的节点权限比较

adobe - "var"是什么时候解析的?

javascript - 正则表达式逗号分隔的电话号码

javascript - 可以从文件上传输入获取文件 data/val 并使用 Ajax 请求将其发送到服务器

javascript - 为什么 Javascript 的 Date() 函数在 Safari 中因我的生日而中断?

ios - Type0 CMap 解析问题

javascript - 根据javascript中的属性值动态对数组的数组进行排序

apache-flex - 以编程方式确定 AIR 应用程序是否是从命令行启动的?

ios - 使用 StageWebView 加载 Youtube 视频时裁剪