2009-04-14 308 views
1

我正在努力使用air flex應用程序。每當我點擊替代 +的東西,Vista發出聲音。我懷疑它與不存在的菜單欄連接。ALT +快捷鍵會發出「嗶嗶」聲

任何想法如何禁用我的應用程序響應快捷鍵在哪裏參與?

下面的代碼:

stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp); 
... 
      public function onKeyUp(event:KeyboardEvent):void { 
       trace("inside onKeyUp"); 

       if (event.altKey) { 
        if (event.keyCode == 69 /* E */) { 
         detailsBtn.dispatchEvent(new MouseEvent(MouseEvent.CLICK, true)); 
        } else if (event.keyCode == 65 /* A */) { 
         andmevahetusBtn.dispatchEvent(new MouseEvent(MouseEvent.CLICK, true)); 
        } else if (event.keyCode == 83 /* S */) { 
         Application.application.close(); 
        } else { 
         trace("Key pressed. keyCode: " + event.keyCode + ", charCode: " + event.charCode); 
        } 
       } 
      } 

我什麼都試過:

event.preventDefault(); 
event.stopPropagation(); 
event.stopImmediatePropagation(); 

沒有什麼幫助。

回答

0

嘗試在onkeypress事件中將鍵碼設置爲0(如果以後不使用它)。

+0

不幸的是,我不能。安裝Flex環境的計算機正在工作。 – 2009-08-06 15:05:27

1

它可能是操作系統捕獲按鍵並響應它。在這種情況下,試圖停止應用程序中的關鍵事件並不重要。

Flex/Flash應用程序中的事件處理不影響Windows事件處理。在Actionscript中停止按鍵傳播只會影響你的應用程序,而不會影響操作系統。

您可以嘗試兩件事情:

  • 查找原因的Windows蜂鳴由於Alt鍵按鍵(可能是因爲國際鍵盤佈局,輔助功能選項,或誰知道),或
  • 雖然它並不完全適合您的設計,從Alt鍵 + X按鍵切換到按Ctrl +X按鍵?
+0

沒錯。 Windows(在我的情況下是Vista)正在收聽ALT + ...如果只是可以禁用flex應用程序中隱藏的菜單欄,以便在開始時打開父窗口(對於子窗口可能)。 – 2009-08-09 07:17:01