管理事件流:确定当前事件阶段eventPhase

在侦听事件的时候 我们经常会遇到这样的问题:在外面的大按钮侦听点击事件 在里面的小按钮也侦听事件 这个时候就会出现点击小按钮 外面的大按钮侦听和里面的小按钮侦听都一起被触发的情况

经过查看addEventListener的事件参数后发现在默认情况下useCapture被设置为false;在被设置为flase时 事件阶段为冒泡阶段,那么如果在小按钮处点击。大按钮响应侦听。冒泡是从里往外的 先到小按钮,小按钮处有侦听执行再到大按钮执行侦听。
那么这个时候我只想小按钮响应 就要在当前事件阶段停下。
代码:
if(e.eventPhase==EventPhase.AT_TARGET){
   txt.text="你按下了小按钮"
   trace(e.currentTarget)
   }
不大好理解。看下面的效果吧。

下面的结构是小按钮和文本 和背景组成大按钮,对大按钮和小按钮加Click侦听;

Tags:eventPhase  

0 Comment so far



Leave a reply