キーボードが押されたか調べる
サンプルをダウンロード
■キーボードが押されたか調べる
キーボードが押されたか調べるには、KeyboardEvent.KEY_DOWN イベントを使用します。
登録した関数の引数から KeyboardEvent オブジェクトが得られます。KeyboardEvent オブジェクトには、以下のプロパティがあります。
| プロパティ | 解説 |
| keyCode | キーコード |
| keyLocation | Shiftキーなど 左=1 か 右=2 か |
| ctrlKey | Ctrlキーの押下状態 |
| shiftKey | Shiftキーの押下状態 |
| altKey | Altキーの押下状態(未サポート) |
キーボードが押されたときに関数が呼び出されるように登録する
// イベントを登録
stage.addEventListener(KeyboardEvent.KEY_DOWN, KeyDownFunc);
// キーボードが押されたときに呼び出される関数
function KeyDownFunc(event:KeyboardEvent):void{
trace(event.keyCode); // キーコード
trace(event.keyLocation); // Shiftキーなど 左=1 か 右=2 か
trace(event.ctrlKey); // Ctrlキーの押下状態
trace(event.shiftKey); // Shiftキーの押下状態
trace(event.altKey); // Altキーの押下状態
};
このイベントハンドラは、stage オブジェクト以外のインスタンスに登録したときはフォーカスを与えないと動作しません。
stage オブジェクト以外でのイベントの登録
var mc : MovieClip = new MovieClip();
// ムービークリップにフォーカスを与える
stage.focus = mc;
// ムービークリップにイベントを登録
mc.addEventListener(KeyboardEvent.KEY_DOWN, KeyDownFunc);
function KeyDownFunc(event:KeyboardEvent){
trace(event.keyCode);
};
キーボードが離されたか調べる
サンプルをダウンロード
■キーボードが離されたか調べる
キーボードが離されたか調べるには、KeyboardEvent.KEY_UP イベントを使用します。
登録した関数の引数から KeyboardEvent オブジェクトが得られます。KeyboardEvent オブジェクトには、以下のプロパティがあります。
| プロパティ | 解説 |
| keyCode | キーコード |
| keyLocation | Shiftキーなど 左=1 か 右=2 か |
| ctrlKey | Ctrlキーの押下状態 |
| shiftKey | Shiftキーの押下状態 |
| altKey | Altキーの押下状態(未サポート) |
キーボードが離されたときに関数が呼び出されるように登録する
// イベントを登録
stage.addEventListener(KeyboardEvent.KEY_UP, KeyUpFunc);
// キーボードを離したときに呼び出される関数
function KeyUpFunc(event:KeyboardEvent){
trace(event.keyCode); // キーコード
trace(event.keyLocation); // Shiftキーなど 左=1 か 右=2 か
trace(event.ctrlKey); // Ctrlキーの押下状態
trace(event.shiftKey); // Shiftキーの押下状態
trace(event.altKey); // Altキーの押下状態
};
このイベントハンドラは、stage オブジェクト以外のインスタンスに登録したときはフォーカスを与えないと動作しません。
stage オブジェクト以外でのイベントの登録
var mc : MovieClip = new MovieClip();
// ムービークリップにフォーカスを与える
stage.focus = mc;
// ムービークリップにイベントを登録
mc.addEventListener(KeyboardEvent.KEY_UP, KeyUpFunc);
function KeyUpFunc(event:KeyboardEvent){
trace(event.keyCode);
};
キーボードが押しっぱなしか調べる
サンプルをダウンロード
■キーボードが押しっぱなしか調べる
キーボードが押しっぱなしか調べるには、上で紹介したイベントハンドラ2つと変数1つを使って調べます。
まず、KEY_DOWN のイベントが呼ばれた時点で変数を true に変更します。
そして、KEY_UP のイベントが呼ばれた時点で変数を false に変更します。
これで、変数が true の間のみキーボードが押しっぱなしである事がわかります。
スペースキーが押しっぱなしであるか調べる
var space_flg : Boolean = false;
// キーボードが押されたときに呼び出されるイベント
stage.addEventListener(KeyboardEvent.KEY_DOWN, KeyDownFunc);
function KeyDownFunc(event:KeyboardEvent):void{
if(event.keyCode == Keyboard.SPACE){
space_flg = true;
}
}
// キーボードが離されたときに呼び出されるイベント
stage.addEventListener(KeyboardEvent.KEY_UP, KeyUpFunc);
function KeyUpFunc(event:KeyboardEvent):void{
if(event.keyCode == Keyboard.SPACE){
space_flg = false;
}
}
// 毎フレーム実行されるイベント
stage.addEventListener(Event.ENTER_FRAME, function(event:Event):void{
if(space_flg){
trace("スペースキーが押されている");
}else{
trace("スペースキーが押されていない");
}
});
キーボードを押しながら Flash を非アクティブにすると押しっぱなしになってしまうので、Flashが非アクティブになったときはキーボードを離した事にします。
非アクティブになる瞬間を調べるには、Event.DEACTIVATE イベントリスナーを使います。
スペースキーが押しっぱなしであるか調べる
var space_flg : Boolean = false;
// キーボードが押されたときに呼び出されるイベント
stage.addEventListener(KeyboardEvent.KEY_DOWN, KeyDownFunc);
function KeyDownFunc(event:KeyboardEvent):void{
if(event.keyCode == Keyboard.SPACE){
space_flg = true;
}
}
// キーボードが離されたときに呼び出されるイベント
stage.addEventListener(KeyboardEvent.KEY_UP, KeyUpFunc);
function KeyUpFunc(event:KeyboardEvent):void{
if(event.keyCode == Keyboard.SPACE){
space_flg = false;
}
}
// 非アクティブ時に呼び出されるイベント
stage.addEventListener(Event.DEACTIVATE, DeActiveFunc);
function DeActiveFunc(event:Event):void{
space_flg = false;
}
// 毎フレーム実行されるイベント
stage.addEventListener(Event.ENTER_FRAME, function(event:Event):void{
if(space_flg){
trace("スペースキーが押されている");
}else{
trace("スペースキーが押されていない");
}
});
■すべてのキーが押しっぱなしか調べる
すべてのキーが押しっぱなしであるかを調べる例です。
すべてのキーが押しっぱなしであるか調べる
var key : Array = new Array();
// キー状態の初期化
KeyInitialize();
function KeyInitialize(){
var i;
for(i=0;i < 255;i++){
key[i] = false;
}
}
// キーが押しっぱなしか調べる
function KeyisDown(code:uint):Boolean{
return key[code];
}
// キーボードが押されたときに呼び出されるイベント
stage.addEventListener(KeyboardEvent.KEY_DOWN, KeyDownFunc);
function KeyDownFunc(event:KeyboardEvent):void{
key[event.keyCode] = true;
}
// キーボードが離されたときに呼び出されるイベント
stage.addEventListener(KeyboardEvent.KEY_UP, KeyUpFunc);
function KeyUpFunc(event:KeyboardEvent):void{
key[event.keyCode] = false;
}
// 非アクティブ時に呼び出されるイベント
stage.addEventListener(Event.DEACTIVATE, DeActiveFunc);
function DeActiveFunc(event:Event):void{
KeyInitialize();
}
// 毎フレーム実行されるイベント
stage.addEventListener(Event.ENTER_FRAME, function(event:Event):void{
if(KeyisDown(Keyboard.SPACE)){
trace("スペースキーが押されている");
}else{
trace("スペースキーが押されていない");
}
if(KeyisDown(65)){
trace("A キーが押されている");
}else{
trace("A キーが押されていない");
}
});
キーコードの一覧表
サンプルをダウンロード
■キーコードの一覧表
KeyboardEvent オブジェクトのプロパティであるkeyCode の一覧表です。
コールバック関数呼び出し時に渡されるパラメータ
stage.addEventListener(KeyboardEvent.KEY_DOWN, KeyDownFunc);
function KeyDownFunc(event:KeyboardEvent):void{
event.keyCode;
};
■英数字キー
A~Z、0~9までのキーコードの一覧表です。
| キー | keyCode |
| 0 | 48 |
| 1 | 49 |
| 2 | 50 |
| 3 | 51 |
| 4 | 52 |
| 5 | 53 |
| 6 | 54 |
| 7 | 55 |
| 8 | 56 |
| 9 | 57 |
| A | 65 |
| B | 66 |
| C | 67 |
| D | 68 |
| E | 69 |
| F | 70 |
| G | 71 |
| H | 72 |
| I | 73 |
| J | 74 |
| K | 75 |
| L | 76 |
| M | 77 |
| N | 78 |
| O | 79 |
| P | 80 |
| Q | 81 |
| R | 82 |
| S | 83 |
| T | 84 |
| U | 85 |
| V | 86 |
| W | 87 |
| X | 88 |
| Y | 89 |
| Z | 90 |
■テンキー
テンキーのキーコードの一覧表です。
| キー | keyCode |
| 0 | 96 |
| 1 | 97 |
| 2 | 98 |
| 3 | 99 |
| 4 | 100 |
| 5 | 101 |
| 6 | 102 |
| 7 | 103 |
| 8 | 104 |
| 9 | 105 |
| * | 106 |
| + | 107 |
| Enter | 108 |
| - | 109 |
| . | 110 |
| / | 111 |
■ファンクションキー
ファンクションキーのキーコードの一覧表です。
| キー | keyCode |
| F1 | 112 |
| F2 | 113 |
| F3 | 114 |
| F4 | 115 |
| F5 | 116 |
| F6 | 117 |
| F7 | 118 |
| F8 | 119 |
| F9 | 120 |
| F10 | 121 |
| F11 | 122 |
| F12 | 123 |
| F13 | 124 |
| F14 | 125 |
| F15 | 126 |
■その他のキー
その他のキーコードの一覧表です。
| キー | keyCode |
| BackSpace | 8 |
| Tab | 9 |
| Clear | 12 |
| Enter | 13 |
| Command | 15 |
| Shift | 16 |
| Ctrl | 17 |
| Alt | 18 |
| CapsLock | 20 |
| Esc | 27 |
| スペースバー | 32 |
| PageUp | 33 |
| PageDown | 34 |
| End | 35 |
| Home | 36 |
| ← (左矢印) | 37 |
| ↑ (上矢印) | 38 |
| → (右矢印) | 39 |
| ↓ (下矢印) | 40 |
| Insert | 45 |
| Delete | 46 |
| Help | 47 |
| NumLock | 144 |
| : * | 186 |
| ; + | 187 |
| , < | 188 |
| - = | 189 |
| . > | 190 |
| / ? | 191 |
| @ ` | 192 |
| [ { | 219 |
| \ | | 220 |
| ] } | 221 |
| ^ ~ | 222 |
■定数
キーコードの定数一覧表です。
| キー | プロパティ |
| BackSpace | Keyboard.BACKSPACE |
| CapsLock | Keyboard.CAPS_LOCK |
| Control | Keyboard.CONTROL |
| Delete | Keyboard.DELETE |
| End | Keyboard.END |
| Enter | Keyboard.ENTER |
| Escape | Keyboard.ESCAPE |
| F1 | Keyboard.F1 |
| F2 | Keyboard.F2 |
| F3 | Keyboard.F3 |
| F4 | Keyboard.F4 |
| F5 | Keyboard.F5 |
| F6 | Keyboard.F6 |
| F7 | Keyboard.F7 |
| F8 | Keyboard.F8 |
| F9 | Keyboard.F9 |
| F10 | Keyboard.F10 |
| F11 | Keyboard.F11 |
| F12 | Keyboard.F12 |
| F13 | Keyboard.F13 |
| F14 | Keyboard.F14 |
| F15 | Keyboard.F15 |
| Home | Keyboard.HOME |
| Insert | Keyboard.INSERT |
| NUMPAD 0 | Keyboard.NUMPAD_0 |
| NUMPAD 1 | Keyboard.NUMPAD_1 |
| NUMPAD 2 | Keyboard.NUMPAD_2 |
| NUMPAD 3 | Keyboard.NUMPAD_3 |
| NUMPAD 4 | Keyboard.NUMPAD_4 |
| NUMPAD 5 | Keyboard.NUMPAD_5 |
| NUMPAD 6 | Keyboard.NUMPAD_6 |
| NUMPAD 7 | Keyboard.NUMPAD_7 |
| NUMPAD 8 | Keyboard.NUMPAD_8 |
| NUMPAD 9 | Keyboard.NUMPAD_9 |
| NUMPAD + | Keyboard.NUMPAD_ADD |
| NUMPAD . | Keyboard.NUMPAD_DECIMAL |
| NUMPAD / | Keyboard.NUMPAD_DIVIDE |
| NUMPAD Enter | Keyboard.NUMPAD_ENTER |
| NUMPAD * | Keyboard.NUMPAD_MULTIPLY |
| NUMPAD - | Keyboard.NUMPAD_SUBTRACT |
| Page Up | Keyboard.PAGE_UP |
| Page Down | Keyboard.PAGE_DOWN |
| Arrow Up | Keyboard.UP |
| Arrow Down | Keyboard.DOWN |
| Arrow Left | Keyboard.LEFT |
| Arrow Right | Keyboard.RIGHT |
| Shift | Keyboard.SHIFT |
| Space | Keyboard.SPACE |
| Tab | Keyboard.TAB |
使用例です。
スペースキーが押されたとき
stage.addEventListener(KeyboardEvent.KEY_DOWN, KeyDownFunc);
function KeyDownFunc(event:KeyboardEvent):void{
if(event.keyCode == Keyboard.SPACE){
trace("スペースキーが押された");
}
}
Aキーが離されたとき
stage.addEventListener(KeyboardEvent.KEY_UP, KeyUpFunc);
function KeyUpFunc(event:KeyboardEvent):void{
if(event.keyCode == 65){
trace("Aキーが離された");
}
}
■Adobe AIR 用キーコードの一覧表
Adobe AIR 専用のキーコードの定数一覧表です。
| キー | プロパティ |
| Command (Macintosh) | Keyboard.COMMAND |
| Alt | Keyboard.ALTERNATE |
| NumPad | Keyboard.NUMPAD |
| テンキー 0 | Keyboard.NUMBER_0 |
| テンキー 1 | Keyboard.NUMBER_1 |
| テンキー 2 | Keyboard.NUMBER_2 |
| テンキー 3 | Keyboard.NUMBER_3 |
| テンキー 4 | Keyboard.NUMBER_4 |
| テンキー 5 | Keyboard.NUMBER_5 |
| テンキー 6 | Keyboard.NUMBER_6 |
| テンキー 7 | Keyboard.NUMBER_7 |
| テンキー 8 | Keyboard.NUMBER_8 |
| テンキー 9 | Keyboard.NUMBER_9 |
| A | Keyboard.A |
| B | Keyboard.B |
| C | Keyboard.C |
| D | Keyboard.D |
| E | Keyboard.E |
| F | Keyboard.F |
| G | Keyboard.G |
| H | Keyboard.H |
| I | Keyboard.I |
| J | Keyboard.J |
| K | Keyboard.K |
| L | Keyboard.L |
| M | Keyboard.M |
| N | Keyboard.N |
| O | Keyboard.O |
| P | Keyboard.P |
| Q | Keyboard.Q |
| R | Keyboard.R |
| S | Keyboard.S |
| T | Keyboard.T |
| U | Keyboard.U |
| V | Keyboard.V |
| W | Keyboard.W |
| X | Keyboard.X |
| Y | Keyboard.Y |
| Z | Keyboard.Z |
| : * | Keyboard.SEMICOLON |
| ; + | Keyboard.EQUAL |
| , < | Keyboard.COMMA |
| - = | Keyboard.MINUS |
| / ? | Keyboard.SLASH |
| @ ` | Keyboard.BACKQUOTE |
| [ { | Keyboard.LEFTBRACKET |
| \ | | Keyboard.BACKSLASH |
| ] } | Keyboard.RIGHTBRACKET |
| ^ ~ | Keyboard.QUOTE |

