« デザイナーのための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

投稿者 michi : 2007年12月27日 15:31

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

トラックバック

このエントリーのトラックバックURL:
http://system.seyself.com/mt-tb.cgi/222

コメント

コメントしてください




保存しますか?