Flex / AIR:自动吸收未分配/禁用的密钥快捷方式

时间:2008-10-14 17:52:32

标签: flex air keyboard-shortcuts

我有一个带有<mx:HTML>组件的AIR应用,该应用会呈现包含基于HTML/Javascript WYSIWYG/rich-text editor的网页。各种键盘快捷键被指定用于格式化和你有什么,但如果我键入一个未分配的快捷方式(例如 cmd 或[ ctrl 在Windows上] + M ),输入的字符就像没有按下修改键一样。如果已分配快捷方式但其菜单项已禁用,则甚至是这样。

检测到修改器被按下的最佳方法是什么,但是没有分配快捷方式,应该忽略该快捷方式而不是在没有修改键的情况下传递给HTML视图?

1 个答案:

答案 0 :(得分:1)

没关系,我明白了。显然,即使您阻止KeyboardEvent上的默认操作,菜单系统也会运行:

public var OperatingSystem:String = !!NativeApplication.supportsDockIcon ?
    'mac' :
    !!NativeApplication.supportsSystemTrayIcon ?
    'win' :
    'other';

stage.addEventListener('keyDown', function(e:KeyboardEvent):void {
    if(e[(OperatingSystem == 'mac' ? 'commandKey' : 'ctrlKey')]) {
        e.preventDefault();
    }
});