2011-01-08 5 views
0

Ich habe den folgenden Code kombiniert:getChildAt mit addChild

seatContainer.getChildAt(order.seats[i]) 

ich will ein Kind zu dieser hinzuzufügen, aber es tut mir erlauben, kann ich nur eine eventlistener diesem hinzufügen.

Wer weiß, wie ich ein Kind hinzufügen kann, ohne einen eventListener zu verwenden?

Antwort

3

Wenn ich mich richtig erinnere, gibt getChildAt() aus den Container-Klassen (z. B. VBox, HBox, etc.) ein DisplayObject zurück. Dieser Objekttyp hat keine Methoden wie "addChild" - diese Methoden werden weiter unten in der Vererbungshierarchie eingeführt.

Sie müssen die von der getChildAt()-Methode zurückgegebene Methode auf etwas anderes als DisplayObject umwandeln; Ich glaube, die gewünschte Methode ist in DisplayObjectContainer:

var child:DisplayObject = seatContainer.getChildAt(order.seats[i]); 
(child as DisplayObjectContainer).addChild(your_child_class_here); 
+0

Das ist richtig. Wenn Sie später child verwenden möchten, können Sie den Befehl getChildAt verwenden - var child: DisplayObjectContainer = (seatContainer.getChildAt (order.seats [i]) als DisplayObjectContainer); – Roy

+0

@Roy, ja, das würde ich tun, obwohl ich es auch in den ursprünglichen Container werfen würde, der an erster Stelle hinzugefügt wurde (z. B. HBox, VBox oder was auch immer). – bedwyr

Verwandte Themen