我有一個本地全屏AIR應用程序(從服務器加載多個SWF), ,我試圖使用ALT+<letter>
作爲快捷鍵。as3 AIR防止全屏窗口中ALT +空格鍵
但是Windows操作系統攔截了鍵,並且例如當我按下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/
,但沒有運氣。 我試着使用preventDefault()
這樣的:
this.stage.addEventListener(KeyboardEvent.KEY_DOWN, ff);
...
function ff(e:KeyboardEvent):void {
e.preventDefault();
}
但是,這並不妨礙OS從攔截關鍵...
一些線索約缺少什麼?
/感謝 /J
我編譯在Flash CS5.5/Win XP的/ AIR 2.6 有沒有區別,如果我編譯和運行的空氣應用程序,或從Flash IDE剛剛調試( Ctrl+Enter
)。
csmoakk,謝謝你的回答! 真正的問題並不是真正阻止'CTRL + ALT + DEL'和'ALT +空格',這是我無法生存的。麻煩的是,當按下ALT鍵時會出現一些奇怪的行爲,然後釋放它。如果你釋放它,那麼下一個鍵沒有被檢測到... 我想我將不得不使用一些其他組合鍵,但這個似乎是正確的任務...如果沒有其他人一些意見? – jenciso 2013-04-10 19:33:12
alt不算作常規密鑰。它在鍵盤事件上的一個參數。所以如果你按ALT鍵,沒有事件被觸發。如果按'h',例如,在按住alt的同時,keycode將是'h'-s,並且altPresset將爲true。然而,Alt可以打開您的瀏覽器菜單,這意味着Flash播放器失去焦點,所以之後點擊的按鍵不會觸發事件,直到您再次單擊Flash。防禦它可以使用全屏交互模式。 – csomakk 2013-04-10 21:44:10
csmoakk,這在AIR中仍然如此嗎?正如我提出的問題,這是一個全屏AIR應用程序... 而在這種情況下,ALT **會觸發KeyboardEvent,並帶有keycode = 18。 如果我按ALT + A鍵,我會觸發兩個鍵盤事件:第一個鍵碼= 18,第二個鍵碼= 65。 我可以檢查'A'並測試event.altKey是否爲true。這不是問題... 問題仍然是,如果我按**並釋放**'ALT',那麼下一個鍵不會分派任何事件。 – jenciso 2013-04-11 14:35:01