在AS3中捕获大写字母

时间:2011-08-10 14:55:58

标签: actionscript-3 flash events keyboard-events georgian

好的,我知道如何捕捉通常的小写字母。我正在使用KeyboardEvent.KEY_DOWN并将代码与ASCII表进行比较以找出按下了哪个键。现在,我也希望能够找出是否存在,例如按下SHIFT + A,我不知道如何实现它。我的意思是,在我的程序中,SHIFT和A是完全不同的键,它们彼此无关,并且它们都会在按下时调用KeyboardEvents。在格鲁吉亚字母表中,一些字母是通过SHIFT和英文字母的组合键入的,例如格鲁吉亚语键盘上的W表示წ,当SIFT + W表示ჭ时。你可以看到完全不同的字母。而且我希望能够捕捉到两者,因为我正在开发格鲁吉亚语游戏。任何帮助将不胜感激。在此先感谢: - )

2 个答案:

答案 0 :(得分: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的组合可以保存您要查找的信息。

答案 1 :(得分:1)

你应该使用KeyboardEvent.charCode(它提供英文代码,你需要将它映射到你的格鲁吉亚键盘布局。)按下shift键可能会在大写字母开启时给出小写字母。