AS3 Zugriff auf Variablen der Übergeordneten Klasse Von Kind
ich versuche weisen Sie einem übergeordneten variable aus dem Eltern-Kind
//Parent
public class Main extends Sprite
{
public var selectedSquare:Sprite;
public function Main()
{
//inits and adds new Square child class to display list
}
...
-------
//Child
public function dragSquare(evt:MouseEvent):void
{
Sprite(parent).selectedSquare = this; //evil doesn't work!
parent.addChild(this);
this.startDrag();
}
ich erhalte diesen Fehler, aber ich bin casting Elternteil von displayObjectContainer, um ein Sprite, also habe ich keine Idee warum es nicht funktioniert.
1119: Zugriff möglicherweise nicht definierte
Eigenschaft selectedSquare durch eine
Verweis mit statischem Typ
flash.display:Sprite.
InformationsquelleAutor TheDarkIn1978 | 2010-04-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie gegossen Elternteil als Haupt-sondern als ein Sprite, da ein Sprite nicht irgendwelche Verweise auf ein "selectedSquare". Wenn die Haupt-zur Erweiterung MovieClip, dies wäre kein problem, da die MovieClips können dynamisch erstellte Referenzen.
Vorgesehene änderung Kind-Funktion:
InformationsquelleAutor Jeremy White
Ein weiterer Grund, dass dies möglicherweise nicht funktioniert ist, dass Sie versucht sind, verwenden Sie die
parent
Eigentum, bevor Sie das Kind zu den Eltern der Anzeigeliste.Die zweite Zeile ist das, was mir sorgen macht. In diesem code wird das aktuelle Objekt (
this
) muss schon als Kind zu den Eltern-Objekt (Main
) für die erste Zeile, um richtig zu arbeiten. Also, entweder das aktuelle Objekt ist noch nicht ein Kind des parent-Objekt, in dem Fall müssen Sie überarbeiten Ihren code.Oder die zweite Zeile ist unnötig (weil
this
bereits ein Kind vonMain
, das ist, warumthis.parent
oder nurparent
, funktioniert wie erwartet).Ich glaube aber, dass Ihr code wahrscheinlich gut eingerichtet. Sie gerade nicht brauchen, die zweite Zeile, wie es ist völlig überflüssig.
Ich hoffe, das hilft! Lassen Sie mich wissen, wenn Sie wollen, dass ich etwas verdeutlichen.
(Dies ist, natürlich, vorausgesetzt, Sie nicht schon alles wissen und nicht tun, irgendeine Art von verrückt, geheimnisvoll, seltsame Magie, mit der redundante
addChild
nennen. Man kann nie sagen mit Zauberer!)Ah ja. Als ich erwähnte, die "Arkane Magie", das ist das, was ich erwartet hatte, waren Sie dabei. Nicht zu kleinlich, aber es könnte klarer sein, wenn Sie die
parent.setChildIndex(this, parent.numChildren-1)
syntax, außer der Tatsache, dass es ein wenig mehr verbose.danke für den Tipp, ich werde tun, da es mehr spezifische und vielleicht vermeiden Sie spätere Probleme, da das Programm komplexer wird.
InformationsquelleAutor ivanreese