Ich erstelle eine MovieClip-Unterklasse (nennen wir sie MyClip
), die ich für mehrere Bibliothekselemente verwenden möchte. Ich werde diese Movieclips aus ActionScript-Code instanziieren. MyClip
verfügt über einen Konstruktorparameter, mit dem die Anfangswerte bestimmter Eigenschaften festgelegt werden können.Übergabe von Parametern an den Konstruktor für eine automatisch erstellte AS3-Assetklasse
Da ich es für mehrere Bibliothekselemente verwenden möchte, scheint die logische Vorgehensweise dies im Textfeld "Basiseigenschaften" im Dialogfeld "Symboleigenschaften" anzugeben. Das Problem ist, dass die automatisch generierten Unterklassen nicht den Konstruktor mit dem Parameter haben. Stattdessen versucht Flash, sie nur mit einem Standardkonstruktor zu generieren, was ebenfalls fehlschlägt, weil MyClip
keinen Standardkonstruktor hat.
Gibt es einen Weg um dies zu umgehen, abgesehen davon, dass die Eigenschaftsinitialisierung auf eine normale Methode verschoben wird?
Edit: Ich war nicht klar genug, ich werde versuchen, hier zu klären. Ist dies der MyClip
Klasse:
public class MyClip extends MovieClip
{
private var someValue : Number;
public function MyClip(someValue : Number)
{
this.someValue = someValue;
}
}
und ich angegeben MyClip
als Basisklasse für Symbol MyClipA in der Bibliothek, ich würde im Idealfall in der Lage sein mag clip = new MyClipA(17);
zu tun, ohne die MyClipA
Klasse selbst zu schreiben.
Haben Sie eine Lösung gefunden? –
Nein. Es gibt wirklich keine Möglichkeit, dies zu tun. Wenn dies eine Situation ist, der Sie gegenüberstehen, dann ist Ihre beste Wette, die Initialisierung auf eine normale Methode zu verschieben oder Klassen neu zu strukturieren, wie zum Beispiel das unten vorgeschlagene Quoo. –