import flash.display.Sprite; import flash.display.DisplayObject;

//事件流用于描述事件发生在显示列表中,可分为三个阶段: //捕获阶段(capture phase):从顶部(如stage)到目标 //目标阶段(target phase):目标 //冒泡阶段(bubbling phase):从目标到顶部

//创建两个节点 var sp1:Sprite =new Sprite (); var sp2:Sprite =new Sprite (); //创建显示列表 this.addChild (sp1); sp1.addChild (sp2); //绘制图形,便于观察 drawRect(sp1,0xff6600,200); drawRect(sp2,0x0000ff,100); function drawRect(obj:DisplayObject ,c:uint ,l:int):void {  obj.graphics.beginFill(c);  obj.graphics.drawRect(0,0,1,1); } //定义实例名,以便在输出面板查看信息 sp1.name="sp1"; sp2.name="sp2"; //为所有节点注册事件 stage.addEventListener(MouseEvent.CLICK,clickFunc); this.addEventListener(MouseEvent.CLICK,clickFunc); sp1.addEventListener(MouseEvent.CLICK,clickFunc); sp2.addEventListener(MouseEvent.CLICK,clickFunc); //定义侦听器函数 function clickFunc(e:MouseEvent):void {  //得到实例名  var s:String=e.currentTarget.name;  //如果实例名存在,输出实例名  if(s)  {   trace(s);  //如果实例名不存在,说明到达舞台,输出stage  }else  {   trace("stage");  } }

测试影片,单击最小的矩形,可在输出面板中看到输出信息。从输出的信息可以看出 事件处理时,首先从最底层的sp2开始,这就是目标阶段,因为鼠标单击的最小矩形 就是sp2,然后从sp2开始,慢慢上升到最顶层的stage,这就是事件流的冒泡阶段。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted on 2012-11-09 00:06  才美  阅读(201)  评论(0编辑  收藏  举报