您的位置:首页 > 其它

flex中 event.target与 event.currentTarget的使用

2013-09-25 15:37 405 查看
target:事件指向的目标,但并非事件的派发者。 在一个事件整个生命周期中所有被派发的事件处理函数内部的target对象是一样的,每个被监听者派发的事件处理函数中的target一定都是同一个对象。
currentTarget:事件的派发者。调用注册在事件上的回调函数的那个对象,简单的说就是派发事件的对象

实例分析如下:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" name="app"
initialize="init()">

<mx:Button id="btn" name="btn" label="按钮1"/>
<mx:Button id="btn2" name="btn2" label="按钮2" click="clickHandler(event)" />
<mx:Script>
  <![CDATA[
  import mx.controls.Alert;
  private function init(): void
    {
       addEventListener(MouseEvent.CLICK, clickHandler);
    }
  
  private function clickHandler(event: MouseEvent): void
    {
        Alert.show("target: " + (event.target as DisplayObject).name+ "\ncurrentTarget: " + (event.currentTarget       as DisplayObject).name);
}
    ]]>
</mx:Script>

</mx:Application>


 

测试结果为:

1.点击空白区域:  
target: app  currentTarget: app  
2.点击按钮1:  target: btn  currentTarget: app  
3.点击按钮2先后出现两个alert窗口:  
alert
1(stage的click事件响应):  
target: btn2  currentTarget: app  alert
2(按钮2的click事件响应):  
target: btn2  currentTarget: btn2
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息