flex 事件的target和currentTarget的区别

所有Event对象都有target和currentTarget属性,target属性可引用事件分派对象currentTarget属性可引用正在被检测事件监听器的当前节点。

在事件将在控件链中向上冒泡,在此过程中target始终不变currentTarget在每个向上移动的过程中及时改变。

例如当用户点击一个Button控件,很可能事件派发者是Button的内部子组件UITextField,事件向上冒泡过程中target始终为 UITextField不变,但currentTarget会逐步冒泡到Button组件,这时,触发了在Button上监听的Click事件处理函数。

综上,开发人员一般使用event.currentTarget属性,event.target属性很少使用。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[           
private function onClick(event:MouseEvent):void
{
trace("event.target:" + event.target);
trace("event.currentTarget:" + event.currentTarget);
}           
]]>
</mx:Script>
<mx:Canvas id="outermostContainer" width="324" height="215" click="onClick(event);"
backgroundColor="#00BB00">
<mx:Canvas  id="canvasContainer" width="249" height="108" click="onClick(event);"
backgroundColor="#00FF00" >
<mx:Button id="btnTest" label="点击测试"  fontSize="25" x="59.5" y="34" />       
</mx:Canvas>       
</mx:Canvas>
</mx:Application>

 

1.when click  button, then u can trace as below:

 

 

event.target:hhhhhh0.outermostContainer.canvasContainer.btnTest
event.currentTarget:hhhhhh0.outermostContainer.canvasContainer
event.target:hhhhhh0.outermostContainer.canvasContainer.btnTest
event.currentTarget:hhhhhh0.outermostContainer

2.click canvasContainer

event.target:hhhhhh0.outermostContainer.canvasContainer
event.currentTarget:hhhhhh0.outermostContainer.canvasContainer
event.target:hhhhhh0.outermostContainer.canvasContainer
event.currentTarget:hhhhhh0.outermostContainer

3.click outermostContainer

 

event.target:hhhhhh0.outermostContainer
event.currentTarget:hhhhhh0.outermostContainer

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值