Ir para conteúdo

POWERED BY:

Arquivado

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

Original Prankster

[Resolvido] Problema: addChild / Nome das Instâncias

Recommended Posts

Olá Pessoal, tudo bom?

 

Estou com um probleminha, e queria saber se alguem sabe como resolver.

 

Eu estou colocando 5 MCs no stage através do addChild e usando um for, até ai tranquilo. Só que depois eu quero aplicar propriedades exclusivas p/ determinados MCs, por exemplo, quero que o 2º MC fique com o alpha 0.5 e o 3º MC rotacione 50 graus. Sendo que quando coloco no final as propriedades, obviamente, ele só faz no último.

 

for (var i = 0; i < 5; i++) {
	var MClip = new mc();
	addChild(MClip);
	
	MClip.y = 50*i;
	
}

MClip.alpha = .5
MClip.rotation = 50;

Imaginei que existisse alguma maneira de renomear os nomes das instancias, ou colocar if dentro do for, mas não é realmente a solução que desejo.

 

 

Estou migrando do AS2 para o AS3 recentemente, e estou me saindo até bem, mas estou com algumas dificuldades em algumas partes, Eu fazia isso tranquilomente no AS2 com o attachMovie pois ele permitia colocar o nome da nova instancia. Então eu colocava mc1, mc2, mc3 e depois fazia um for com this["mc" + i], mas em AS3 eu estou realmente com esta dificuldade

 

 

Se alguem puder me ajudar, ficarei mutio grato http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode definir nomes para os DisplayObjects e depois indentificá-los por getChildByName(), mas esta opção tem um pouco menos de desempenho.

for (var i = 0; i < 5; i++) {
	var MClip:mc = new mc();
	MClip.name = "mc" + i;
	addChild(MClip);
	
	MClip.y = 50*i;
}

getChildByName("mc" + 2).alpha = .5;
getChildByName("mc" + 2).rotation = 50;

Uma outra idéia seria identificá-los pelo índice no stage (ou em outro DisplayObjectContainer, se for o caso).

for (var i = 0; i < 5; i++) {
	var MClip:mc = new mc();
	addChild(MClip);
	
	MClip.y = 50*i;
}

getChildAt(2).alpha = .5;
getChildAt(2).rotation = 50;

E também poderia armazenar os DisplayObjects numa matriz e depois identificá-los pelo índice do Array (ou do Vector).

var clips:Array = new Array(); // var clips:Vector.<mc> = Vector.<mc>();
for (var i = 0; i < 5; i++) {
	var MClip:mc = new mc();
	addChild(MClip);
	
	MClip.y = 50*i;
	
	clips.push(MClip);
}

clips[2].alpha = .5;
clips[2].rotation = 50;

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.