赤い領域のマウスイベントを表示する 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.
tags: zlashdot Flash Flash Flex
Posted by NI-Lab. (@nilab)