赤い領域のマウスイベントを表示する Flash

ソースコード (MouseEventChecker.as)


package {
 
  import flash.display.*;
  import flash.events.*;
  import flash.text.*;
  import flash.utils.*;
  
  public class MouseEventChecker extends Sprite {
 
    // メッセージ表示用
    private var message:TextField;
 
    public function MouseEventChecker() {
 
      // イベントの対象となる Sprite オブジェクト
      var canvas:Sprite = new Sprite();
      canvas.graphics.beginFill(0xFF0000);
      canvas.graphics.drawRect(0,0,100,100);
      canvas.graphics.endFill();
      // ダブルクリックを有効に設定
      canvas.doubleClickEnabled = true;
      addChild(canvas);
 
      // 表示メッセージのスタイル
      var format:TextFormat = new TextFormat();
      format.bold = false;
      format.italic = false;
      format.size = 10;
      format.underline = false;
      format.font = "_等幅";
 
      // 表示メッセージ
      message = new TextField();
      message.text = "";
      message.autoSize = TextFieldAutoSize.LEFT;
      message.selectable = false;
      message.setTextFormat(format);
      canvas.addChild(message);
 
      // イベントの設定
      canvas.addEventListener(MouseEvent.CLICK,    click);
      canvas.addEventListener(MouseEvent.DOUBLE_CLICK, doubleclick);
      canvas.addEventListener(MouseEvent.MOUSE_DOWN,   mousedown);
      canvas.addEventListener(MouseEvent.MOUSE_MOVE,   mousemove);
      canvas.addEventListener(MouseEvent.MOUSE_OUT,  mouseout);
      canvas.addEventListener(MouseEvent.MOUSE_OVER,   mouseover);
      canvas.addEventListener(MouseEvent.MOUSE_UP,   mouseup);
      canvas.addEventListener(MouseEvent.MOUSE_WHEEL,  mousewheel);
      canvas.addEventListener(MouseEvent.ROLL_OUT,   rollout);
      canvas.addEventListener(MouseEvent.ROLL_OVER,  rollover);
 
      // タイマーで定期的に表示メッセージを消去
      var timer:Timer=new Timer(2000,0);
      timer.addEventListener(TimerEvent.TIMER, clear);
      timer.start();
    }
 
    private function getPos(evt:MouseEvent):String{
      return "(" + evt.localX + "," + evt.localY + ")";
    }
 
    private function click(evt:MouseEvent):void {
      display("CLICK" + getPos(evt));
    }
 
    private function doubleclick(evt:MouseEvent):void {
      display("DOUBLE_CLICK" + getPos(evt));
    }
 
    private function mousedown(evt:MouseEvent):void {
      display("MOUSE_DOWN" + getPos(evt));
    }
 
    private function mousemove(evt:MouseEvent):void {
      display("MOUSE_MOVE" + getPos(evt));
    }
 
    private function mouseout(evt:MouseEvent):void {
      display("MOUSE_OUT" + getPos(evt));
    }
 
    private function mouseover(evt:MouseEvent):void {
      display("MOUSE_OVER" + getPos(evt));
    }
 
    private function mouseup(evt:MouseEvent):void {
      display("MOUSE_UP" + getPos(evt));
    }
 
    private function mousewheel(evt:MouseEvent):void {
      display("MOUSE_WHEEL"  + getPos(evt) + ",delta=" + evt.delta);
    }
 
    private function rollout(evt:MouseEvent):void {
      display("ROLL_OUT" + getPos(evt));
    }
 
    private function rollover(evt:MouseEvent):void {
      display("ROLL_OVER" + getPos(evt));
    }
 
    private function display(str:String):void{
      message.appendText(str);
      message.appendText("\n");
    }
 
    private function clear(evt:TimerEvent):void {
      message.text = "";
    }
 
  }
}

コンパイル

C:\>mxmlc -default-size 240 240 -default-frame-rate 30 -default-background-color 0xFFFFFF MouseEventChecker.as

Ref.

Adobe Flex (NI-Lab.'s MemoWiki - Flex)

tags: zlashdot Flash Flash Flex

Posted by NI-Lab. (@nilab)