キーボードが押されたか調べる
サンプルをダウンロード
■キーボードが押されたか調べる
キーボードが押されたか調べるには、キーボードイベントリスナーを使います。KeyboardEvent.KEY_DOWN で関数を登録しておくと、キーボードが押されたときに関数が呼ばれます。引数に
KeyboardEvent オブジェクトが渡されます。プロパティは以下の通り。
| プロパティ | 解説 |
| keyCode | キーコード |
| keyLocation | Shiftキーなど 左=1 か 右=2 か |
| ctrlKey | Ctrlキーの押下状態 |
| shiftKey | Shiftキーの押下状態 |
| altKey | Altキーの押下状態(未サポート) |
キーボードが押されたときに関数が呼び出されるように登録する
stage.addEventListener(KeyboardEvent.KEY_DOWN, KeyDown);
function KeyDown(event:KeyboardEvent){
trace(event.keyCode);
trace(event.keyLocation);
trace(event.ctrlKey);
trace(event.shiftKey);
trace(event.altKey);
};
このイベントハンドラは、stage オブジェクト以外のインスタンスに登録したときはフォーカスを与えないと動作しません。
stage オブジェクト以外でのイベントの登録
var mc : MovieClip = new MovieClip();
stage.focus = mc;
mc.addEventListener(KeyboardEvent.KEY_DOWN, KeyDown);
function KeyDown(event:KeyboardEvent){
trace(event.keyCode);
};
キーボードが離されたか調べる
サンプルをダウンロード
■キーボードが離されたか調べる
キーボードが押されたか調べるには、キーボードイベントリスナーを使います。KeyboardEvent.KEY_UP で関数を登録しておくと、キーボードが離されたときに関数が呼ばれます。引数に
KeyboardEvent オブジェクトが渡されます。プロパティは以下の通り。
| プロパティ | 解説 |
| keyCode | キーコード |
| keyLocation | Shiftキーなど 左=1 か 右=2 か |
| ctrlKey | Ctrlキーの押下状態 |
| shiftKey | Shiftキーの押下状態 |
| altKey | Altキーの押下状態(未サポート) |
キーボードが離されたときに関数が呼び出されるように登録する
stage.addEventListener(KeyboardEvent.KEY_UP, KeyUp);
function KeyUp(event:KeyboardEvent){
trace(event.keyCode);
trace(event.keyLocation);
trace(event.ctrlKey);
trace(event.shiftKey);
trace(event.altKey);
};
このイベントハンドラは、stage オブジェクト以外のインスタンスに登録したときはフォーカスを与えないと動作しません。
stage オブジェクト以外でのイベントの登録
var mc : MovieClip = new MovieClip();
stage.focus = mc;
mc.addEventListener(KeyboardEvent.KEY_UP, KeyUp);
function KeyUp(event:KeyboardEvent){
trace(event.keyCode);
};
キーボードが押しっぱなしか調べる
サンプルをダウンロード
■キーボードが押しっぱなしか調べる
キーボードが押しっぱなしか調べるには、上で紹介したイベントハンドラ2つと変数1つを使って調べます。
まず、KEY_DOWN のイベントハンドラが呼ばれた時点で変数のフラグを立てます。そして、KEY_UP のイベントハンドラが呼ばれた時点で変数のフラグをつぶします。
こうすると変数が立っている間のみキーボードが押しっぱなしである事がわかります。
まず、KEY_DOWN のイベントハンドラが呼ばれた時点で変数のフラグを立てます。そして、KEY_UP のイベントハンドラが呼ばれた時点で変数のフラグをつぶします。
こうすると変数が立っている間のみキーボードが押しっぱなしである事がわかります。
スペースキーが押しっぱなしであるか調べる
var space_flg : Boolean = false;
function KeyDownFunc(event){
if(event.keyCode == Keyboard.SPACE){
space_flg = true;
}
}
function KeyUpFunc(event){
if(event.keyCode == Keyboard.SPACE){
space_flg = false;
}
}
stage.addEventListener(KeyboardEvent.KEY_DOWN, KeyDownFunc);
stage.addEventListener(KeyboardEvent.KEY_UP, KeyUpFunc);
stage.addEventListener(Event.ENTER_FRAME, function(event){
if(space_flg){
trace("スペースキーが押されている");
}else{
trace("スペースキーが押されていない");
}
});
キーボードを押しながら Flash を非アクティブにすると押しっぱなしになってしまうので、Flashが非アクティブになったときはキーボードを離すようにします。 非アクティブになったか調べるには、Event.DEACTIVATE イベントリスナーを使います。
スペースキーが押しっぱなしであるか調べる
var space_flg : Boolean = false;
function KeyDownFunc(event){
if(event.keyCode == Keyboard.SPACE){
space_flg = true;
}
}
function KeyUpFunc(event){
if(event.keyCode == Keyboard.SPACE){
space_flg = false;
}
}
function DeActiveFunc(event){
space_flg = false;
}
stage.addEventListener(KeyboardEvent.KEY_DOWN, KeyDownFunc);
stage.addEventListener(KeyboardEvent.KEY_UP, KeyUpFunc);
stage.addEventListener(Event.DEACTIVATE, DeActiveFunc);
stage.addEventListener(Event.ENTER_FRAME, function(event){
if(space_flg){
trace("スペースキーが押されている");
}else{
trace("スペースキーが押されていない");
}
});
キーコードの一覧表
サンプルをダウンロード
■キーコードの一覧表
キーボードイベントリスナーのコールバック関数の引数に渡される KeyboardEvent のプロパティ KeyCode の一覧表です。
A〜Z、0〜9までのキーコードの一覧表です。
コールバック関数呼び出し時に渡されるパラメータ
stage.addEventListener(KeyboardEvent.KEY_DOWN, KeyDownFunc);
function KeyDownFunc(event:KeyboardEvent){
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 |
| 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){
if(event.keyCode == Keyboard.SPACE){
trace("スペースキーが押された");
}
}
Aキーが離されたとき
stage.addEventListener(KeyboardEvent.KEY_UP, KeyUpFunc);
function KeyUpFunc(event:KeyboardEvent){
if(event.keyCode == "65"){
trace("スペースキーが押された");
}
}
