AS3 事件冒泡理解

 
 
//====================================================================================================================================
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 ,然后加入帧代码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值