トップページ > マウス, キーボード > キーボードイベントを受け取る



プログラム

stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
 
ENTER_FRAMEやマウスイベントと同じように設定します。
KEY_DOWNは何かのキーが押された時にイベントを送出します。


private function onKeyDown(event:KeyboardEvent):void
{
 
}
 
メソッドの書き方はこんな感じです。
KeyboardEventが送出されるので、引数にevent:KeyboardEventと書いておきましょう。


if (event.keyCode == 65) trace("Aが押されました");
 
event.keyCodeの中に数値が入っています。
このkeyCodeというのは、キーボードにある各キーと対応している数値が入っている変数で、例えば"A"は65、"0"は48という風に番号が割り振られています。


キーコード一覧
基本的には上のページに載せている、文字に対応するキーコードと比較します。


String.fromCharCode(event.keyCode) == "A"
 
String#fromCharCode()でキーコードから文字列を取得することが可能です。
取得できる文字列は英数字(A-Z, 0-9)のみです。


private function onKeyDown(event:KeyboardEvent):void 
{
	if (event.keyCode == Keyboard.LEFT) trace("←が押されました");
}
 
Keyboardクラスにキーコードに対応する定数が用意されているのでそれを使用してもいいでしょう。
英字(a~z, A~Z)以外のキー全てがKeyboardクラスに定義されています。


イベント名

KEY_DOWN 何かのキーが押されたとき
KEY_UP 何かのキーが離されたとき


検証用コード

package
{
	import flash.display.Sprite;
	import flash.events.KeyboardEvent;
 
	public class Main extends Sprite
	{
		public function Main()
		{
			stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
			stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp);
		}
 
		private function onKeyDown(event:KeyboardEvent):void 
		{
			if (event.keyCode == 65) trace("Aが押されました");
		}
 
		private function onKeyUp(event:KeyboardEvent):void 
		{
			if (event.keyCode == 65) trace("Aが離されました");
		}
	}
}
 

|新しいページ|検索|ページ一覧|RSS|@ウィキご利用ガイド | 管理者にお問合せ
|ログイン|