HAKUHIN's home page
更新履歴
 
 




キーボードが押されたか調べる


サンプルをダウンロード




■キーボードが押されたか調べる

キーボードが押されたか調べるには、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キーコード
keyLocationShiftキーなど 左=1 か 右=2 か
ctrlKeyCtrlキーの押下状態
shiftKeyShiftキーの押下状態
altKeyAltキーの押下状態(未サポート)
 
キーボードが離されたときに関数が呼び出されるように登録する

// イベントを登録
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
 
 




HAKUHIN's home page バナー http://hakuhin.jp/
(c) Hakuhin & 日新礼符 2002-2011 解像度1024×768以上 IE8.0以上推奨
/ 閲覧中: