EventDemo——演示事件流

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);
		}
	}
}
posted @ 2010-04-04 22:51  LT世纪  阅读(181)  评论(0编辑  收藏  举报