Est-il un moyen de supprimer inconnu des écouteurs d'événement à partir d'objets?

Je veux avoir une réutilisables bouton qui peut être inscrit à l'un des nombreux différents rappels, déterminé par une source externe. Lorsqu'une nouvelle fonction de rappel est définie, je veux supprimer l'ancienne. Je veux aussi être en mesure d'effacer le rappel de l'extérieur à tout moment.

public function registerButtonCallback(function:Function):void
{
  clearButtonCallback();

  button.addEventListener(MouseEvent.CLICK, function, false, 0, true);
}

public function clearButtonCallback():void
{
  if (button.hasEventListener(MouseEvent.CLICK) == true)
  {
    //do something to remove that listener
  }
}

J'ai vu des suggestions sur ici pour utiliser les "arguments.le destinataire de l'appel" dans le rappel, mais je ne veux pas avoir cette fonctionnalité liée à la fonction de rappel - par exemple, je pourrais voulez être en mesure de cliquer sur le bouton deux fois.

Suggestions?

InformationsquelleAutor | 2008-10-08