好的,我知道如何捕捉通常的小写字母。我正在使用 KeyboardEvent.KEY_DOWN 并将代码与 ASCII 表进行比较以找出按下了哪个键。现在,我还希望能够找出是否有,例如按下 SHIFT+A,但我不知道如何实现这一点。我的意思是,在我的程序中 SHIFT 和 A 是完全不同的键,它们彼此无关,按下时它们都会调用 KeyboardEvents。在格鲁吉亚字母表中,一些字母是通过 SHIFT 和英文字母的组合键入的,例如格鲁吉亚键盘上的 W 表示 წ,而 SIFT+W 表示 ჭ。如您所见,字母完全不同。而且我希望能够同时抓住两者,因为我目前正在开发格鲁吉亚语游戏。任何帮助将不胜感激。提前致谢 :-)
问问题
694 次
2 回答
3
看一下 KeyEvent 类。它为您提供有关是否按下 shift 键的信息。看这个例子:
stage.addEventListener (KeyboardEvent.KEY_DOWN, keyDownHandler);
function keyDownHandler (e:KeyboardEvent):void {
trace("Key code: "+e.keyCode);
trace("Ctrl status: "+e.ctrlKey);
trace("Key location: "+e.keyLocation);
trace("Shift key: "+e.shiftKey);
}
这是一个示例输出:
(pressing the "a" key)
Key code: 65
Ctrl status: false
Key location: 0
Shift key: false
(pressing the SHIFT first for shift+a)
Key code: 16
Ctrl status: false
Key location: 1
Shift key: true
(pressing the "a" key while still holding shift)
Key code: 65
Ctrl status: false
Key location: 0
Shift key: true
如您所见,KeyboardEvent.keyCode 和 KeyboardEvent.shiftKey 的组合包含您要查找的信息。
于 2011-08-10T16:12:59.953 回答
1
您应该使用KeyboardEvent.charCode(它提供英文代码,您需要将其映射到您的格鲁吉亚键盘布局。)当大写锁定打开时,带有 shift 键的按键可能会给出小写字母。
于 2011-08-10T17:36:51.480 回答