Я всегда считал, что анонимные функции доставляют больше хлопот, чем они того стоят. Я бы просто следовал стандартному расположению кода обработчика событий. Это более формально и требует немного больше усилий заранее, но нет никакой двусмысленности, и это намного более читабельно, когда вы вернетесь к нему через год (сокращает продолжительность царапин на голове):
// Target extends EventDispatcher
private var target:Target;
public function listenToTarget();
{
target = new Target();
target.addEventListener("pComp", pCompHandler);
}
private function pCompHandler(event:Event):void
{
target.rakeSoil();
}
Хотя, теперь, когда я посмотрю на него более внимательно, почему вы заставляете этот объект делать что-то, что Target должен быть способен обрабатывать самостоятельно?