Als een object DisplayObjectContainer uit het weergaveoverzicht wordt verwijderd, wordt verplaatst of wordt getransformeerd, wordt elk weergaveobject in de DisplayObjectContainer ook verwijderd, verplaatst of getransformeerd.
Een weergaveobjectcontainer is zelf een type weergaveobject; het kan aan een andere weergaveobjectcontainer worden toegevoegd. De volgende afbeelding toont bijvoorbeeld een container voor weergaveobjecten
pictureScreen
, die een lijncontour en vier andere weergaveobjectcontainers bevat (van het type PictureFrame):
Afbeelding op volledige grootte weergeven
-
A.
-
Een vorm waarmee de rand van de weergaveobjectcontainer pictureScreen wordt gedefinieerd
-
B.
-
Vier onderliggende weergaveobjectcontainers van het object pictureScreen
Als u een weergaveobject in het weergaveoverzicht wilt weergeven, moet u deze toevoegen aan de weergaveobjectcontainer die zich in het weergaveoverzicht bevindt. U kunt dit via de methode
addChild()
of de methode
addChildAt()
van het object container doen. Zonder de laatste regel van de volgende code zou het object
myTextField
bijvoorbeeld niet worden weergegeven:
var myTextField:TextField = new TextField();
myTextField.text = "hello";
this.root.addChild(myTextField);
In ditzelfde voorbeeld wijst
this.root
naar de weergaveobjectcontainer MovieClip die de code bevat. In uw eigen code moet u een andere container opgeven.
Gebruik de methode
addChildAt()
om het element op een bepaalde positie aan de lijst met onderliggende items van de weergaveobjectcontainer toe te voegen. Deze op nul gebaseerde indexposities in de lijst met onderliggende items hebben betrekking op de laag waarop de weergaveobjecten worden geplaatst (van voor naar achter). Bekijk bijvoorbeeld de volgende drie weergaveobjecten. Elk object is gemaakt op basis van een aangepaste klasse met de naam Ball.
De containerlaag van deze weergaveobjecten kan worden aangepast met de methode
addChildAt()
. Neem bijvoorbeeld de volgende code:
ball_A = new Ball(0xFFCC00, "a");
ball_A.name = "ball_A";
ball_A.x = 20;
ball_A.y = 20;
container.addChild(ball_A);
ball_B = new Ball(0xFFCC00, "b");
ball_B.name = "ball_B";
ball_B.x = 70;
ball_B.y = 20;
container.addChild(ball_B);
ball_C = new Ball(0xFFCC00, "c");
ball_C.name = "ball_C";
ball_C.x = 40;
ball_C.y = 60;
container.addChildAt(ball_C, 1);
Nadat u deze code hebt uitgevoerd, worden de weergaveobjecten als volgt geordend in het DisplayObjectContainer-object
container
. Zie de lagen van de objecten.
Als u een object boven aan het weergaveoverzicht wilt plaatsen, voegt u het object opnieuw aan de lijst toe. Als u, op basis van de vorige code,
ball_A
naar de bovenkant van de stapel wilt verplaatsen, gebruikt u de onderstaande coderegel:
container.addChild(ball_A);
Deze code verwijdert
ball_A
van zijn locatie in het weergaveoverzicht van de
container
en voegt zichzelf opnieuw aan de bovenkant van het overzicht toe. Hiermee wordt het object boven op de stapel geplaatst.
U kunt de methode
getChildAt()
gebruiken om de laagvolgorde van de weergaveobjecten te verifiëren. De methode
getChildAt()
retourneert de onderliggende objecten van een container op basis van het indexnummer dat u doorgeeft. De volgende code onthult bijvoorbeeld de namen van weergaveobjecten op verschillende posities in de lijst met onderliggende items van het DisplayObjectContainer-object
container
:
trace(container.getChildAt(0).name); // ball_A
trace(container.getChildAt(1).name); // ball_C
trace(container.getChildAt(2).name); // ball_B
Als u een weergaveobject uit de lijst met onderliggende items van de bovenliggende container verwijdert, worden de daarboven gelegen elementen één positie naar beneden geschoven in de onderliggende index. Op basis van de vorige code, toont de volgende code hoe het weergaveobject dat zich op positie 2 in de
container
DisplayObjectContainer bevindt, naar positie 1 wordt verplaatst als een lager gelegen weergaveobject in de lijst met onderliggende items wordt verwijderd:
container.removeChild(ball_C);
trace(container.getChildAt(0).name); // ball_A
trace(container.getChildAt(1).name); // ball_B
De methoden
removeChild()
en
removeChildAt()
verwijderen een weergaveobjectinstantie niet geheel. Ze verwijderen het uit de lijst met onderliggende items van de container. Er kan nog steeds door een andere variabele naar de instantie worden verwezen. (Gebruik de operator
delete
om een object volledig te verwijderen.)
Omdat een weergaveobject slechts een bovenliggende container heeft, kunt u een instantie van een weergaveobject slechts aan één weergaveobjectcontainer toevoegen. De volgende code toont bijvoorbeeld dat het weergaveobject
tf1
alleen in een container kan bestaan (in dit geval een Sprite die de klasse DisplayObjectContainer uitbreidt):
tf1:TextField = new TextField();
tf2:TextField = new TextField();
tf1.name = "text 1";
tf2.name = "text 2";
container1:Sprite = new Sprite();
container2:Sprite = new Sprite();
container1.addChild(tf1);
container1.addChild(tf2);
container2.addChild(tf1);
trace(container1.numChildren); // 1
trace(container1.getChildAt(0).name); // text 2
trace(container2.numChildren); // 1
trace(container2.getChildAt(0).name); // text 1
Als u een weergaveobject in een weergaveobjectcontainer aan een andere weergaveobjectcontainer toevoegt, wordt deze verwijderd uit de eerste lijst met onderliggende items van de weergaveobjectcontainer.
Naast de hierboven beschreven methoden, definieert de klasse DisplayObjectContainer verschillende methoden voor het werken met onderliggende weergaveobjecten, waaronder:
-
contains()
: hiermee wordt bepaald of een weergaveobject een onderliggend object van een DisplayObjectContainer is.
-
getChildByName()
: hiermee wordt een weergaveobject op naam opgehaald.
-
getChildIndex()
: hiermee wordt de indexpositie van een weergaveobject geretourneerd.
-
setChildIndex()
: hiermee wordt de positie van een onderliggend weergaveobject gewijzigd.
-
removeChildren()
: hiermee worden meerdere onderliggende weergaveobjecten verwijderd.
-
swapChildren()
: hiermee wordt de volgorde (van voor naar achter) van twee weergaveobjecten verwisseld.
-
swapChildrenAt()
: hiermee wordt de volgorde (van voor naar achter) van twee weergaveobjecten verwisseld, opgegeven door hun indexwaarden.
Zie de relevante onderwerpen in de
Naslaggids voor ActionScript 3.0 voor het Adobe Flash-platform
voor meer informatie.
Let erop dat een weergaveobject dat niet in het weergaveoverzicht staat (een object dat niet is opgenomen in een onderliggende weergaveobjectcontainer van het werkgebied) bekend staat als een
niet-weergegeven
weergaveobject.