【问题标题】:Adobe AIR: Overwrite standard Command C keyEquivalent?Adobe AIR:覆盖标准命令 C 键等效?
【发布时间】:2009-12-28 22:43:13
【问题描述】:

我目前正在尝试构建一个小型 Air 应用程序,我想在其中设置普通的 Command-C 键来调用函数?这甚至可以使用标准的菜单命令吗?

function createMenu():NativeMenu{
var menu:NativeMenu = new NativeMenu();
var menuOneCommand: NativeMenuItem = menu.addItem(new NativeMenuItem("Menu 1"));
menuOneCommand.keyEquivalent = "C"; //Command Shift C
menuOneCommand.addEventListener(Event.SELECT, myfunction);
return menu;

}

此外,我很想知道如何调用实际上是 MouseEvent 处理程序的函数 (myfunction)?

function myfunction(e:MouseEvent = null) { trace('Throws Errors at the moment')}

感谢您的帮助!

【问题讨论】:

    标签: flash actionscript-3 air


    【解决方案1】:

    我不确定你在问题的第一部分是什么意思(正常的命令 C 键是什么?)而且我从未使用过 NativeMenuItems,但关于你问题的第二部分:

    为 Event.SELECT 添加事件侦听器时,回调函数必须接受 Event 对象,而不是 MouseEvent 对象。由于 MouseEvent 继承自 Event,您可以安全地将 MouseEvent 更改为 myfunction 的参数列表中的 Event,除非您正在使用 e 的某些属性,这些属性专门属于 MouseEvent(您的示例没有)。

    【讨论】:

      【解决方案2】:

      好吧,如果我正在运行我的 Air 应用程序,它当然有默认菜单,几乎每个应用程序都有。像“文件”、“编辑”和“窗口”。首先,我可以摆脱它们吗,因为我的应用程序不需要它们。这正是我对 CMD-C 的意思。如果我查看“编辑”菜单,我会发现“复制”、“粘贴”等普通命令,它们当然有默认的快捷方式,如 CMD-C 或 CMD-V。但是我想以不同的方式将它们用于我的应用程序。如果我正在使用 CMD-C 或 CMD-V,我想在我的 AS 中调用一个函数。

      当然,任何其他“非默认”快捷方式都不是问题,例如CMD-F,但是默认已经采用了CMD-C。我可以改变这种行为吗?

      感谢您的帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-27
        • 1970-01-01
        • 2013-08-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多