AS3: detector de eventos que solo se dispara una vez

Estoy buscando una manera de agregar un EventListener que se eliminará automáticamente después de la primera vez que se dispara, pero no puedo encontrar una manera de hacerlo de la manera que quiero.

Encontré esta función (aquí):

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);
    }
}


Pero en lugar de tener que escribir:

EventUtil.addOnceEventListener( dispatcher, eventType, listener );

Me gustaría usarlo de la manera habitual:

dispatcher.addOnceEventListener( eventType, listener );


¿Alguien tiene una idea de cómo se podría hacer esto?
Cualquier ayuda sería muy apreciada.

(Sé que Robert Penner'sSeñales puedo hacer esto, pero no puedo usarlos, ya que significaría una gran cantidad de reescritura de código que no puedo pagar para mi proyecto actual)

Respuestas a la pregunta(3)

Su respuesta a la pregunta