さて、私は通常の小文字をキャッチする方法を知っています. 私は KeyboardEvent.KEY_DOWN を使用しており、コードを ASCII テーブルと比較して、どのキーが押されたかを調べます。今、たとえばSHIFT + Aが押されているかどうかを確認できるようにしたいのですが、これを実装する方法がわかりません。つまり、私のプログラムでは、SHIFT と A はまったく異なるキーであり、互いに何の関係もありません。両方とも、押されると KeyboardEvents を呼び出します。グルジア語のアルファベットでは、一部の文字は SHIFT と英語の文字の組み合わせで入力されます。たとえば、グルジア語のキーボードの W は წ を意味し、SIFT+W は ჭ を意味します。ご覧のとおり、まったく異なる文字です。そして、私は現在グルジア語のゲームを開発しているので、両方をキャッチできるようにしたいと考えています。どんな助けでも大歓迎です。前もって感謝します :-)
2 に答える
3
KeyEvent クラスを見てください。シフトキーが押されたかどうかに関する情報を提供します。この例を見てください:
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を使用する必要があります (これは英語のコードを提供します。グルジア語のキーボード レイアウトにマップする必要があります。) capslock がオンの場合、Shift キーを押しながらキーを押すと小文字が返される場合があります。
于 2011-08-10T17:36:51.480 に答える