package {
import flash.display.DisplayObject;
import flash.display.Shape;
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.text.TextField;
public class EventDemo extends Sprite {
public function EventDemo() {
var RED:Sprite=getNamedSprite("RED",200,200,0xff0000);
this.addChild(RED);
var BLUE:Sprite=getNamedSprite("BLUE",150,150,0x0000ff);
BLUE.x=25;
BLUE.y=25;
RED.addChild(BLUE);
var GREEN:Sprite=getNamedSprite("GREEN",100,100,0x00ff00);
GREEN.x=25;
GREEN.y=25;
BLUE.addChild(GREEN);
this.addEventListener(MouseEvent.CLICK,onClick);
this.stage.addEventListener(MouseEvent.CLICK,onClick);
}
public function getNamedSprite(name:String,width:Number=150,height:Number=80,color:uint=0xffffff):Sprite {
var sh:Shape=new Shape();
sh.name=name+" shape";
sh.graphics.beginFill(color);
sh.graphics.drawRect(0,0,width,height);
sh.graphics.endFill();
var txt:TextField=new TextField();
txt.text=name;
txt.height=20;
txt.name=name+" text";
txt.textColor=0xffffff;
txt.selectable=false;
txt.addEventListener(MouseEvent.CLICK,onClick);
var sp:Sprite=new Sprite();
sp.name=name+" sprite";
sp.addChild(sh);
sp.addChild(txt);
sp.addEventListener(MouseEvent.CLICK,onClick);
return sp;
}
private function onClick(e:MouseEvent):void {
var target:DisplayObject=e.target as DisplayObject;
var currentTarget:DisplayObject=e.currentTarget as DisplayObject;
trace("target:"+target.name+target+"\tcurrent:"+currentTarget.name+currentTarget);
}
}
}