Ich möchte eine wiederverwendbare Schaltfläche haben, die für einen von vielen verschiedenen Rückrufen registriert werden kann, die von einer externen Quelle bestimmt werden. Wenn ein neuer Rückruf festgelegt ist, möchte ich den alten entfernen. Ich möchte auch in der Lage sein, den Rückruf jederzeit extern zu löschen.Gibt es eine Möglichkeit, unbekannte Ereignislistener von Objekten zu entfernen?
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
}
}
Ich habe hier gesehen Vorschläge innerhalb der Callback „arguments.callee“ zu verwenden, aber ich will nicht, dass die Funktionalität an die Callback gebunden haben - zum Beispiel, könnte ich mag in der Lage sein Klicken Sie zweimal auf die Schaltfläche.
Vorschläge?
Gotcha. Weißt du, ich glaube, ich habe das angefangen und mich aus irgendeinem Grund dagegen entschieden, an den ich mich nicht erinnere. So oder so, Ihre Annahme ist richtig und es ist eine gute Möglichkeit, das zu tun, was ich beabsichtigt habe. Vielen Dank. –
Großartig, froh, dass ich helfen konnte. Wenn Sie dies als die Antwort markieren, bekomme ich auch ein paar Rep-Punkte :-) – Simon