我有一个本地全屏AIR应用程序(从服务器加载几个swf),我试着用ALT+<letter>
作为捷径。
但是Windows系统拦截了ALT
键,例如当我按下ALT+Space
时显示左上角窗口菜单,这是我想防止的。
我发现了这些帖子,这似乎是一个解决方案:
- http://blog.six4rty.ch/2010/11/09/air-quick-hint-suppress-keyboard-events/
- http://inflagrantedelicto.memoryspiral.com/2009/12/adobe-air-preventing-users-from-closing-the-app/
禁用某些键's默认动作
但是运气不好。我试着像这样使用preventDefault()
:
this.stage.addEventListener(KeyboardEvent.KEY_DOWN, ff);
...
function ff(e:KeyboardEvent):void {
e.preventDefault();
}
但这并不能阻止操作系统拦截ALT
密钥…
关于缺少什么的线索?
/谢谢/j
我正在编译Flash CS5.5/Win XP/Air 2.6如果我编译和运行Air-app,或者只是从Flash IDE (Ctrl+Enter
)调试,则没有区别。
你不能阻止它,因为它是一个操作系统功能。这就像你试图阻止ctrl+alt+del,这是不允许的。使用AS3 preventDefault,你只阻止虚拟机的事件,操作系统的"冒泡"继续。使用ANE也不会有这样的运气,因为在c++中也不能这样做。