您的位置:首页 > 移动开发

flex 事件的target和currentTarget的区别

2010-05-17 13:46 561 查看
所有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

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息