//====================================================================================================================================
var mcA:Sprite = new Sprite();
var mcB:Sprite = new Sprite();
var mcC:Sprite = new Sprite();
mcA.name = "外层";
mcB.name = "中层";
mcC.name = "内层";
addChild(mcA);
mcA.addChild(mcB);
mcB.addChild(mcC);
drawR(mcA,250,0xFF0000)
drawR(mcB,190,0x00FF00)
drawR(mcC,120,0x0000FF)
//居中定位
mcA.x = stage.stageWidth/2
mcA.y = stage.stageHeight/2
//事件侦听,此处参数传入true 设置侦听捕获阶段事件
mcA.addEventListener(MouseEvent.CLICK,fun,true)
mcB.addEventListener(MouseEvent.CLICK,fun,true)
mcC.addEventListener(MouseEvent.CLICK,fun,true)
//侦听目标、冒泡阶段事件
mcA.addEventListener(MouseEvent.CLICK,fun)
mcB.addEventListener(MouseEvent.CLICK,fun)
mcC.addEventListener(MouseEvent.CLICK,fun)
//事件处理函数
function fun(_evt:MouseEvent):void{
var i:String
switch(_evt.eventPhase ){
case 1:
i = "捕获阶段";
break;
case 2:
i = "【目标阶段】";
break;
case 3:
i = "冒泡阶段";
break;
}
trace("当前阶段:",i, "当前事件触发对象(target):",_evt.target.name,"\t\t当前事件处理对象(currentTarget):",_evt.currentTarget.name)
if( _evt.target.parent == root || (_evt.eventPhase == 3 && _evt.currentTarget.parent == root) ){
trace("\n\n========================\n\n")
}
}
//绘制函数
function drawR(_sp:Sprite, _rec:uint, _color:uint):void{
_rec = _rec/2;
var _g:Graphics = _sp.graphics;
_g.beginFill(_color);
_g.drawRect(-_rec,-_rec,_rec*2,_rec*2);
_g.endFill();
}
新建文件fla ,然后加入帧代码