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,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); } } }