AIR(AS3)でキーボードショートカットを設定・取得する方法
適当にAIRでアプリケーションを作ってるのですが、「キーボードショートカットを設定・取得する」といったことをしようと思っても、いい資料が見つからなかったので、メモしておきます。
分かる方は別に調べなくても分かるんでしょうが…^^;
1.イベントリスナを登録
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyboardDown);
※注意
creationCompleteのハンドラの中にこれを書くとエラーになります。
それでも書きたい場合は、
setTimeout(function():void { stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyboardDown); }, 100);
と書けば動くかと思います。
2.押されたキーを判別する
1でハンドラとしてonKeyboardDownを指定したので、その中でどのキーが押されたのかを判別します。
import mx.controls.Alert; private function onKeyboardDown(event:KeyboardEvent):void { if (event.ctrlKey && event.keyCode == Keyboard.ENTER) { Alert.show(); } }
ここでは、Ctrl+Enterが押されたときに、Alertさせています。この部分の処理を変更すれば、ショートカットキーの実装は完了です。
Ctrl+Enterではなく、ほかのショートカットキーを登録したい場合は、if文の中身を変えてください。
ちなみに…
event.ctrlKeyは真偽値で、Trueなら、Ctrlキーが押されていることになります。
event.keyCodeにはNumber型で、キーコードが入っています。
全くActionScriptについては初心者なので、ここがおかしい、説明が変、こうすると後々よくないことが起きる、等あるかと思いますので、その際はコメント欄からお気軽に指摘してください。よろしくお願いします。