Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

João Paulo M.M

Controle de Child por "categoria"

Recommended Posts

Tenho uma duvida,supondo que eu tenha Child adicionados em camadas dentro de Sprites e outros MCs:

 

var container:Sprite = new Sprite();
var site1:wholeSite = new wholeSite;
var uberMenu:mainMenu = new mainMenu;
var menuBase:menu = new menu;
container.addChild(site1);
site1.addChild(uberMenu, 1);
site1.addChild(menuBase, 2);

como eu faço pra "targetear" esses Childs nao pela instancia de cada um, mas sim pela "categoria"?

algo tipo:

site1.Child(1).gotoAndPlay(5);
site1.Child(2).gotoAndPlay(10);
onde (1) e (2) seriam os "niveis" onde serao carregados..

 

muito obrigado... http://forum.imasters.com.br/public/style_emoticons/default/grin.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá João Paulo. Tudo bem?

 

Sempre que você adiciona um Child ele recebe um index, que também é o layer em que ele está.

 

Ao adicionar o primeiro, ele recebe index=0, o segundo index=1 e assim sucessivamente.

 

O que você tentou fazer com o addChild só pode ser feito com o método addChildAt:

 

site1.addChildAt(uberMenu, 1);

No entanto, o código que você montou não permite que você atribua um index maior que a capacidade do Container.

 

Se o Container tem 2 objetos ( container.numChildren == 2 ), o index máximo a ser atribuído é 1. Se atribuir maior que isso, dá pau.

 

Então, no seu exemplo, para funcionar, deveria ser:

 

var container:Sprite = new Sprite();
var site1:wholeSite = new wholeSite();
var uberMenu:mainMenu = new mainMenu();
var menuBase:menu = new menu();
container.addChild(site1);
site1.addChild(uberMenu); // recebe index = 0
site1.addChild(menuBase); // recebe index = 1

Assim, no segundo momento, ficaria:

 

MovieClip(site1.getChildAt(0)).gotoAndPlay(5); // ubberMenu
MovieClip(site1.getChildAt(1)).gotoAndPlay(10); // menuBase

O método getChildAt sempre retorna um objeto tipo DisplayObject, que não possui os métodos play, stop, gotoAndPlay etc. que o MovieClip tem. Por isso é necessário o MovieClip().

 

Abs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.