2011-08-10 51 views
0

好吧,我知道如何捕捉通常的小寫字母。我正在使用KeyboardEvent.KEY_DOWN並將代碼與ASCII表進行比較以找出哪個鍵被按下。現在,我也希望能夠找出是否存在,例如按下SHIFT + A,但我不知道如何實現這一點。我的意思是,在我的程序中SHIFT和A是完全不同的鍵,它們之間沒有任何關係,它們都會在按下時調用KeyboardEvents。在格魯吉亞語字母表中,一些字母通過SHIFT和英文字母的組合鍵入,例如格魯吉亞語鍵盤上的W表示წ,當SIFT + W表示ჭ時。你可以看到絕對不同的字母。我希望能夠抓住兩者,因爲我目前正在開發格魯吉亞語的比賽。任何幫助將不勝感激。在此先感謝:-)在AS3中捕獲大寫字母

回答

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持有您正在尋找的信息。

+0

CAPS LOCK有沒有影響shiftKey變量? – Mattias

1

您應該使用KeyboardEvent.charCode(它提供英文代碼,您需要將其映射到您的格魯吉亞語鍵盤佈局。)帶有移位的按鍵可能會在大寫鎖定打開時顯示小寫字母。