« デザイナーのためのActionScript講座 ― 第8回:MovieClipと階層構造 | メイン | Matrix の値から拡大縮小、回転の値を取る »

2007年12月27日

[as3] KeyboardEvent

あんまり取り沙汰されてない気がするけども、AS3になって複数キーのイベントがきちんと取れるようになったのはすばらしい事だと思う。
import flash.events.KeyboardEvent;
import flash.display.Sprite;

var sprite:Sprite = new Sprite();
this.addChild( sprite );
var pressPattern:Array = new Array(300);

function keyDownHandler( event:KeyboardEvent ):void
{
  if( !pressPattern[event.keyCode] ){
    trace("DOWN : " + event.keyCode);
    pressPattern[event.keyCode] = true;
  }
}

function keyUpHandler( event:KeyboardEvent ):void
{
  if( pressPattern[event.keyCode] ){
    trace("UP   : " + event.keyCode);
    pressPattern[event.keyCode] = false;
  }
}

sprite.addEventListener( KeyboardEvent.KEY_DOWN , keyDownHandler );
sprite.addEventListener( KeyboardEvent.KEY_UP   , keyUpHandler   );
this.stage.focus = sprite;
出力例
DOWN : 97
DOWN : 98
DOWN : 99
UP   : 98
UP   : 99
UP   : 97
ちなみにAS2だとこうなる。
DOWN : 97
DOWN : 98
DOWN : 99
UP   : 99

トラックバック(0)

このブログ記事を参照しているブログ一覧: KeyboardEvent

このブログ記事に対するトラックバックURL: http://system.seyself.com/mt-tb.cgi/468

コメントする


画像の中に見える文字を入力してください。

しばらく時間が経過すると、システム内部と表示されている文字内容に食い違いが発生するようなので、
投稿する前にページをリロードすることをお勧めします。
リロードしてもフォームの内容は維持されます。