2011-07-20 14 views
1

CTRL + を押してイベントを発生させる必要があります。キーボードイベントをキャプチャするCTRL + s

私はこれを試してみましたが、それは動作しません。

if(e.ctrlKey == true && e.keyCode == 81){ 
     trace("CTRL+S") 
    } 

どのようにそれを行うことができますか? ヒントありがとうございます。

+0

キーボード定数を使用していないのはなぜですか? 'e.keyCode == Keyboard.S'はあなたが望むことをする必要があります。 –

答えて

3

Sの場合はkeyCode 83です(間違えた場合に備えて)。さらに、KEY_UPイベントにリスナーを追加するようにしてください。ここに実例があります:

<?xml version="1.0" encoding="utf-8"?> 
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
         xmlns:s="library://ns.adobe.com/flex/spark" 
         xmlns:mx="library://ns.adobe.com/flex/mx"> 
    <s:layout> 
     <s:VerticalLayout/> 
    </s:layout> 
    <s:Panel title="Panel 3" width="100%" height="200" creationComplete="onCreationComplete()"> 
     <s:layout> 
      <s:VerticalLayout/> 
     </s:layout> 
     <fx:Script> 
      <![CDATA[ 
      private function onCreationComplete():void{ 
       this.addEventListener(MouseEvent.CLICK, clickHandler); 
       this.addEventListener(KeyboardEvent.KEY_UP,keyPressed); 
      } 

      private function clickHandler(event:MouseEvent):void { 
       stage.focus = this; 
      } 

      private function keyPressed(evt:KeyboardEvent):void{ 
       if(evt.ctrlKey && evt.keyCode == 65) 
        trace("CTRL A is pressed"); 
       if(evt.ctrlKey && evt.keyCode == 66) 
        trace("CTRL B is pressed"); 
       if(evt.ctrlKey && evt.keyCode == 81) 
        trace("CTRL S is pressed"); 
      } 
      ]]> 
     </fx:Script> 
    </s:Panel> 
</s:WindowedApplication> 
+1

>> SのためのkeyCode 83です - 私は休憩が必要だと思います。ありがとうございました! – Uli

1

M.Dの答えはとてもよく見えます。キーボードイベントのイベントリスナーを追加する方法を示します。

しかし、彼は言及しなかった一つのこと:あなたは、ブラウザでのFlash SWFとしてこれを実行している場合、CTRL + Sショートカットが傍受され、消費ブラウザにより、Flash Playerが取得することはありませんもすることができますそれ。 CTRL + Sは、ページを保存するための非常に一般的なショートカットです。ブラウザのフォーカスの問題に遭遇すると、驚かないでください。

+0

それを指摘してくれてありがとう。どの代替ショートカットをお勧めしますか? – Uli

+0

アランが正しいです。 CTRL + SをFlexアプリケーションで使用する場合、またはFlashムービーを使用する場合は、Flexアプリケーションに焦点を当てる必要があります。あなたはそれを確認することができます..ちょうどあなたのアプリケーションを起動し、どこでもクリックせずにCTRL + Sを実行してください。 –

+2

ブラウザ間での互換性を最大限に高め、フォーカスの問題を最小限にするには、ALTまたはCTRLキーのコンボを避けることをおすすめします。 SHIFTまたは修飾子なしの両方でうまくいきますが、アプリで入力が必要な場合は使用できないことがあります。私は多くのことがあなたが作成しているものの種類に依存すると思う。いくつかのユースケースでは、CTRLコンボを使用するのが最も理にかなっています。予想されるブラウザを見て、使用するコンボを避けてください。 – Allan

関連する問題