カスタムボタンコンポーネントを作成し、keyDownHandlerをオーバーライドする必要があります。ただし、停止するボタンを選択する場合は、コードに条件を追加する必要があります。これは、それがどのように見えるかです:
package Sandbox
{
import mx.controls.Button;
import flash.events.KeyboardEvent;
public class KeyButton extends Button
{
public function KeyButton()
{
super();
}
protected override function keyDownHandler(e : KeyboardEvent) : void {
if (e.keyCode == 32) { // Spacebar
return;
}
else if (e.keyCode == 67) { // Letter C
this.parentApplication.setStyle ("backgroundColor", "#00aa00");
}
super.keyDownHandler (e);
}
}
}
この利点は、入力のような他のキーはまだ、動作します、またはたとえば、あなたがの色を変更したい、場合は、別のキーのためのより多くの条件文を追加することができるということですボタンを押した場合はCなどを押します。
私たちがいる間は、KeyboardEvent.keyCodeとcharCodeに違いがあります。 keyCodeは物理キーボード上のキーのIDです。つまり、小文字のcと大文字のCは同じです(keyCode == 67)。一方、charCodeはASCIIテーブルの文字のアドレスなので、cとCは異なります(Cは67、cは99)。要するに、keyCodeは大文字小文字を区別しません。
ああ、はい。また、キーのキーとコード(バックスペースのような任意のものを含む)をチェックする必要がある場合は、pageをチェックしてください。
これを説明するためにapplicationも作成しました。これは標準のFlex Builderプロジェクトですが、ソースがない場合はsrcフォルダにあります。アプリケーションを起動し、ボタンをクリックしてフォーカスを合わせます。ボタンのクリックイベントのおかげで、ボタンの上にテキストが表示されるはずです。フォーカスがある間、クリックイベントを発生させ、より多くのテキストを印刷する必要がありますが、何も起こりませんスペースバーを押してください!次に、cキーを押してアプリケーションの背景色を変更します。きちんとした、ええ?
ソースhereがあります。