Руководство по actionscript. часть 2, стр. 045
Обращение к объекту, зарегистрировавшему приемник
В процессе диспетчеризации любого события объект Event, передаваемый в каждый приемник события, определяет переменную currentTarget, содержащую ссылку на объект, в котором зарегистрирован этот приемник события. Это демонстрирует следующий обобщенный код приемника события; он отображает строковое значение (типа String) объекта, в котором зарегистрирован приемник не-кийПриемник( ):
public function некийПриемник (е:НекоеСобытие):void { // Обращение к объекту, в котором зарегистрирован данный приемник события trace(e. currentTarget);
}
Для событий, получателями которых являются неотображаемые объекты, значение переменной экземпляра currentTarget класса Event всегда равняется значению переменной экземпляра target (поскольку приемники всегда регистрируются в получателе события). Например, вернемся к классу FileLoader из листинга 12.1. Если мы сравним значения переменных е. currentTarget и е. target внутри метода completeListener ( ), то увидим, что обе ссылаются на один и тот же объект:
package { import flash. display.*;
import flash. net.*; import flash. events.*;
public class FileLoader extends Sprite { public function FileLoader ( ) { var urlLoader:URLLoader = new URLLoader( ); urlLoader. addEventLi stener(Event. COMPLETE, completeLi stener); urlLoader.1oad(new URLRequest(«someFi1e. txt»));
}
private function completeListener (e:Event):void { trace(e. currentTarget == e. target): // Отображает: true
}
}
}
Тем не менее, как будет рассказано в гл. 21, для событий, получателями которых являются отображаемые объекты в иерархии отображения, приемники могут регистрироваться как в получателе события, так и в его контейнерах отображения. Для приемников событий, зарегистрированных в контейнере отображения получателя события, переменная currentTarget ссылается на этот контейнер, а переменная target — на объект получателя события.