Wie können Sie beim überladen einer Funktion in ActionScript?

Möchte ich eine Funktion in der Lage sein, in verschiedenen Arten. AS3 unterstützt nicht überladen direkt... so kann ich nicht Folgendes tun:

//THIS ISN'T SUPPORTED BY AS3

function someFunction(xx:int, yy:int, someBoolean:Boolean = true){
    //blah blah blah
}
function someFunction(arr:Array, someBoolean:Boolean = true){
    someFunction(arr[0], arr[1], someBoolean);
}

Wie kann ich es umgehen, und haben immer noch eine Funktion, die in der Lage ist, Argumente verschiedener Typen?

  • Ich bin sicher, du bekommst deine Antworten, aber ich bin nur courious warum würden Sie wollen, um die Methode überladen? Manchmal habe ich mich zu einem bestimmten Punkt, wenn das wirklich geholfen hätte, um fix eine schnelle problem, aber ich concider es SCHLECHTE PRAXIS, so dass ich nicht tun es.
  • Ich Stimme mit Mattias. W/o native Unterstützung für die überlastung, ist es schlechte Praxis, um eine Funktion akzeptieren, variable Parameter (es sei denn in sehr, sehr speziellen Situationen, die haben nichts zu tun mit überlastung)
  • Die Methode überladen ist eine unglaublich praktische Ergänzung zu jeder Sprache. Es würde Zeug wie Mathe Klassen so viel einfacher; nicht mehr multPoint(), multScalar (), etc, können Sie nur haben, mult()
  • Cool. Jede gute Beispiele dafür?
  • es ist nicht wirklich unterstützte in as3. die beste, die ich gesehen habe, ist so etwas wie zzzzBov Antwort: function mult( param:* ):void { if (param is Point) this._multPoint(); else if (param is Number) this._multScalar(); }
  • Ich Stimme mit peeps oben. Die Methode Überladen mit erstaunlich sein, wenn einheimische.. Alle "Hacks" sind es nicht Wert, die Umsetzung Zeit!

InformationsquelleAutor AS3 Guy | 2011-09-19
Schreibe einen Kommentar