タグ : KeyEvent

サポートされるキーイベントについて

androidにはデバイスにもよりますが、基本的にBACK,MENU,HOME,SEARCHといったキー群があります。AIR for Androidではこのキーイベントを受け取ることができます。

※HOMEキーは無効になっています。airforandroid側でイベントが受け取れない模様。
※BACKキーにはデフォルトで直前のアプリに戻る設定になっているようです。これを無効にする場合はKebordEvent.preventDefault()を使います。

受け取り方は以下のとおりです。

package
{
	import flash.display.Sprite;
	import flash.events.KeyboardEvent;
	import flash.ui.Keyboard;

	public class Main extends Sprite
	{
		public function Main()
		{
			stage.addEventListener( KeyboardEvent.KEY_DOWN, onKey );
		}
		private function onKey(e:KeyboardEvent):void {
			switch(e.keyCode) {
				case Keyboard.BACK :
					trace("Keyboard.BACK");
					break;
				case Keyboard.MENU :
					trace("Keyboard.MENU");
					break;
				case Keyboard.SEARCH :
					trace("Keyboard.SEARCH");
					break;
				default:
					trace(e.keyCode);
					break;
			}
			e.preventDefault();
		}
	}
}

2010/12/6 追記:

デバイス毎にキーマップが異なり、2010/12/6現在発売される、もしくは発売されている端末ではBACKキーとHOMEキー、MENUキーはすべての端末に存在していますがSEARCHキーはXperiaシリーズやGalaxy Sには存在していません。このキーマップにおける明確なガイドラインが存在しないため端末メーカーごとに仕様が異なり、これから発売される端末においてもその仕様部分については不明瞭な状態になっています。

また、デスクトップのキーコードとは異なる場合があるのでifやswitchで条件分岐させる場合は、かならずKeyboardクラスを利用したほうがい◎です。

キーイベントを使う場合はMENUキーとBACKキーのみの記述が無難です。