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