入力(マウス、キーボード)
「Main.as」
/** * @mxmlc -default-size 640 480 -incremental=true */ package { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.ui.*; public class Main extends Sprite { private var g:Glib01 = new Glib01( 640, 480); private var myPos:Point = new Point( 100, 100 ); private var mousePos:Point = new Point( 200, 100 ); private var base:Sprite; //------------------------------------- // public function Main() { base = new Sprite(); base.focusRect = false; addChild(base); base.addChild( new Bitmap( g.GetBitmapData() )); base.addEventListener( KeyboardEvent.KEY_DOWN, keyDown); base.addEventListener( MouseEvent.CLICK, mouseClic); mainDraw(); } //------------------------------------- // private function keyDown( evt:KeyboardEvent ):void { switch( evt.keyCode ){ case Keyboard.UP: myPos.y -= 1; break; case Keyboard.DOWN: myPos.y += 1; break; case Keyboard.LEFT: myPos.x -= 1; break; case Keyboard.RIGHT: myPos.x += 1; break; } mainDraw(); } //------------------------------------- // private function mouseClic( evt:MouseEvent ):void { mousePos.x = evt.stageX; mousePos.y = evt.stageY; stage.focus = base; mainDraw(); } //------------------------------------- // private function mainDraw():void { g.Cls(0x8080ff); g.Print( myPos.x, myPos.y, "myPoint"); g.Print( mousePos.x, mousePos.y, "mousePoint"); } } }
■キーやマウスの入力はSpriteクラスに登録するとイベントが発生します。
base.addEventListener( KeyboardEvent.KEY_DOWN, keyDown); base.addEventListener( MouseEvent.CLICK, mouseClic);
Glib01クラスは、そのSpriteクラスにaddChildして使用するように変更します。
(Glib01クラスにaddEventListenerを追加してもイベントは発生しません)
base = new Sprite(); base.focusRect = false; addChild(base); base.addChild( new Bitmap( g.GetBitmapData() )); <|| ■キーイベントはフォーカスの当たっていないウインドでは発生しないので、マウスでクリックした時にフォーカスを、Supriteクラスに移します。 >|| private function mouseClic( evt:MouseEvent ):void { : stage.focus = base; }
キーイベントは2種類あるので、ゲームにはいろいろと工夫して使用していきましょう
KeyboardEvent.KEY_DOWN
KeyboardEvent.KEY_UP
■マウスイベント
マウスのイベントはいろいろとあるので、場合によって使い分けですね
MouseEvent.CLICK
MouseEvent.DOUBLE_CLICK
MouseEvent.MOUSE_DOWN
MouseEvent.MOUSE_UP
MouseEvent.MOUSE_MOVE
MouseEvent.MOUSE_OUT
MouseEvent.MOUSE_OVER
MouseEvent.MOUSE_WHEEL
MouseEvent.ROLL_OUT
MouseEvent.ROLL_OVER