2008-10-14 39 views
1

我有一个AIR应用程序,其中<mx:HTML>组件显示包含基于WYSIWYG/rich-text editorHTML/Javascript的页面。各个键盘快捷键被指定用于格式化和你有什么,但如果我([在Windows CTRL] + 中号CMD或)
类型的未分配
一个快捷方式输入的字符就好像没有按下修饰键。如果快捷方式已分配,但其菜单项已禁用,则情况更是如此。Flex/AIR:自动吸收未分配/禁用的快捷键

什么是检测修饰符被按下的最佳方式,但是快捷键未被赋值,应该忽略而不是通过不带修饰键的HTML视图?

回答

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