15.10.2012 Views

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ACTIONSCRIPT 3.0 ENTWICKLERHANDBUCH<br />

Programmieren von Anzeigeobjekten<br />

Mit der getChildAt()-Methode können Sie die Ebenenreihenfolge der Anzeigeobjekte überprüfen. Die<br />

getChildAt()-Methode gibt die untergeordneten Objekte in einem Container basierend auf der Indexnummer<br />

zurück, die Sie übergeben haben. Im folgenden Beispielcode werden die Namen der Anzeigeobjekte an den<br />

verschiedenen Positionen in der Child-Liste des DisplayObjectContainer-Objekts container sichtbar gemacht:<br />

trace(container.getChildAt(0).name); // ball_A<br />

trace(container.getChildAt(1).name); // ball_C<br />

trace(container.getChildAt(2).name); // ball_B<br />

Wenn Sie ein Anzeigeobjekt aus der Child-Liste des übergeordneten Containers entfernen, werden die höheren<br />

Elemente in der Liste um jeweils eine Position in der untergeordneten Indexposition nach unten verschoben. Im<br />

folgenden Beispiel setzen wir den Code aus den vorangegangenen Beispiel fort. Es zeigt, wie ein Anzeigeobjekt, das<br />

sich an Position 2 im DisplayObjectContainer-Objekt container befand, an die Position 1 verschoben wird, wenn ein<br />

niedrigeres Anzeigeobjekt aus der Child-Liste entfernt wird:<br />

container.removeChild(ball_C);<br />

trace(container.getChildAt(0).name); // ball_A<br />

trace(container.getChildAt(1).name); // ball_B<br />

Die Methoden removeChild() und removeChildAt() löschen eine Anzeigeobjektinstanz nicht vollständig. Sie<br />

entfernen sie einfach nur aus der Child-Liste des Containers. Die Instanz kann dennoch von einer anderen Variablen<br />

für Verweise genutzt werden. (Verwenden Sie den Operator delete, um ein Objekt vollständig zu löschen.)<br />

Da ein Anzeigeobjekt nur einen übergeordneten Container hat, können Sie eine Instanz eines Anzeigeobjekts nur<br />

einem Anzeigeobjektcontainer hinzufügen. Im folgenden Beispielcode wird gezeigt, dass das Anzeigeobjekt tf1 nur<br />

in einem Container existieren kann (in diesem Fall ein Sprite, das die DisplayObjectContainer-Klasse erweitert):<br />

tf1:TextField = new TextField();<br />

tf2:TextField = new TextField();<br />

tf1.name = "text 1";<br />

tf2.name = "text 2";<br />

container1:Sprite = new Sprite();<br />

container2:Sprite = new Sprite();<br />

container1.addChild(tf1);<br />

container1.addChild(tf2);<br />

container2.addChild(tf1);<br />

trace(container1.numChildren); // 1<br />

trace(container1.getChildAt(0).name); // text 2<br />

trace(container2.numChildren); // 1<br />

trace(container2.getChildAt(0).name); // text 1<br />

Wenn Sie ein Anzeigeobjekt, das in einem Anzeigeobjektcontainer enthalten ist, einem anderen<br />

Anzeigeobjektcontainer hinzufügen, wird es aus der Child-Liste des ersten Anzeigeobjektcontainers entfernt.<br />

Neben den beiden oben beschriebenen Methoden definiert die DisplayObjectContainer-Klasse weitere Methoden<br />

zum Arbeiten mit untergeordneten Anzeigeobjekten. Hierzu gehören u. a. die Folgenden:<br />

contains(): Ermittelt, ob ein Anzeigeobjekt ein untergeordnetes Element eines DisplayObjectContainer ist.<br />

getChildByName(): Ruft ein Anzeigeobjekt über den Namen ab.<br />

getChildIndex(): Gibt die Indexposition eines Anzeigeobjekts zurück.<br />

setChildIndex(): Ändert die Position eines untergeordneten Anzeigeobjekts.<br />

removeChildren(): Entfernt mehrere untergeordnete Anzeigeobjekte.<br />

Letzte Aktualisierung 27.6.2012<br />

173

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!