본문 바로가기

카테고리 없음

KeyboardEvent

KeyboardEvent example
좌우상하 키(KeyboardEvent)를 이용하여 화면의 공을 좌우상하방향으로 이동하고, 마우스를 클릭(MouseEvent)하면 클릭한 위치로 공을 이동하는 예제

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
 creationComplete="initApp();" applicationComplete="setEvent();">
 
 <mx:Script>
  <![CDATA[
   import mx.core.UIComponent;
  
   var sprite:Sprite;
  
   public function initApp():void {
    sprite = new Sprite();
    sprite.graphics.beginFill(0xFF5500);
    sprite.graphics.drawCircle(0,0,50);
    sprite.graphics.endFill();
   
    sprite.x = this.width/2;
    sprite.y = this.height/2;
   
    var uicomp:UIComponent = new UIComponent();
    uicomp.addChild(sprite);
    this.addChild(uicomp);

   }
   
   /*
   * KeyboardEvent는 stage나 텍스트콤포넌트에 등록할 수 있는데, creationComplete()이벤트발생시에는
   * 아직 stage 오브젝트가 null 이므로 applicationComplete()이벤트 핸들러를 이용해야 한다.
   */
   function setEvent():void {
    stage.addEventListener(KeyboardEvent.KEY_DOWN, keydownHandler);
    stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseHandler);
   }
  
   public function keydownHandler(event:KeyboardEvent):void {
    if(event.keyCode==Keyboard.RIGHT)sprite.x++;
    else if(event.keyCode==Keyboard.LEFT)sprite.x--;
    else if(event.keyCode==Keyboard.UP)sprite.y--;
    else if(event.keyCode==Keyboard.DOWN)sprite.y++;
    /* 눌린키를 문자열로 변환하려면 다음과 같이...
    var str:String = String.fromCharCode(event.charCode);
    */
   }
  
   public function mouseHandler(event:MouseEvent):void {
    var x:int = event.stageX;
    var y:int = event.stageY;
    sprite.x = x;//-sprite.width/2;
    sprite.y = y;//-sprite.height/2;
   }
  ]]>
 </mx:Script>

</mx:Application>


 



스테이지를 한번 클릭해 주어야 키보드 이벤트가 발생/처리된다