AS3 - Ouvinte de evento que é acionado apenas uma vez

Estou procurando uma maneira de adicionar um EventListener que se remove automaticamente após a primeira vez que é acionado, mas não consigo imaginar uma maneira de fazer isso da maneira que quero.

Eu encontrei esta função (aqui):

public class EventUtil
{
    public static function addOnceEventListener(dispatcher:IEventDispatcher,eventType:String,listener:Function):void
    {
         var f:Function = function(e:Event):void
         {
              dispatcher.removeEventListener(eventType,f);
              listener(e);
          }
          dispatcher.addEventListener(eventType,f);
    }
}


Mas em vez de ter que escrever:

EventUtil.addOnceEventListener( dispatcher, eventType, listener );

Eu gostaria de usá-lo da maneira usual:

dispatcher.addOnceEventListener( eventType, listener );


Alguém tem uma idéia de como isso pode ser feito?
Qualquer ajuda seria muito apreciada.

(Eu sei que Robert Penner'sSignals pode fazer isso, mas não posso usá-los, pois isso significaria muita reescrita de código que não posso pagar pelo meu projeto atual)

questionAnswers(3)

yourAnswerToTheQuestion