Ir para conteúdo

Arquivado

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

Elektra

Animar arrays populadas em for, separadamente

Recommended Posts

O que tenho atualmente:

 

import flash.display.MovieClip;

var grupo1:Array = [];
var grupo2:Array = [];
var grupo3:Array = [];
var grupo4:Array = [];
var grupo5:Array = [];

var qdr:MovieClip ;

//var arrays:Array = []

var total:int = 25;
var cont:int = 0;

var grid = new Sprite();
addChild(grid);

for (var i:int = 0; i < total; i++) {

qdr = new MovieClip();
//var qdr:MovieClip = new MovieClip();
qdr.graphics.lineStyle(2,0x000066); //visualização
qdr.graphics.beginFill(0xBBBBFF, 1);
qdr.graphics.drawRect(0,0, 100, 100);
qdr.graphics.endFill();

qdr.x = qdr.width * i; //visualização

cont++

//i >> [12] -----------------------------------------------------
if(cont==13)		
{
	//qdr.visible = false; // teste
	grupo1.push(i);		
	trace(grupo1);	// output >> 12

}


//i >> [7],[11],[13],[17]----------------------------------------
if (cont==8 || cont==12 || cont ==14 || cont==18)	   
{
	grupo2.push(i);
	trace(grupo2); // output >> 7,11,13,17	

}	

addChild(qdr);	
}

 

Os arrays, grupo1, grupo2, grupo3, etc, serão adicionados em um Sprite, como máscara para um container.

 

Preciso animar cada objeto com o mesmo resize de 0 a 1 e chamar os arrays com delay, não estou sabendo como acessar.

 

No exemplo tenho 25 mcs e 5 arrays, na prática serão bem mais para criar um grid.

 

obs: aceitável exportar um mc pela library com anima/resize de 0 a 1 e dar um play simultâneo nos índices de cada array. Mesmo assim, preciso chamar os arrays em sequência, com delay.

 

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia.

Você pode utilizar timer definindo um delay de acordo com a necessidade (1s ou 0.5s).

Se você atribuir um nome aos quadros que você criou de acordo com que são criados, depois fica mais fácil acessá-los utilizando o array.

qdr = new MovieClip();
qdr.name = "qdr" + i;

Assim, você pode tentar, por exemplo:

trace(getChildByName("qdr" + grupo1[i]).name);

 

abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigada pela atenção Marcos.

 

Consegui acessar os mcs populados nos arrays (já tinha testado com name).

Todos irão receber a mesma animação (scale de 0 a 1).

No exemplo, com resize fixo. Click apenas para teste.

 

//i >> [7],[11],[13],[17]----------------------------------------
if (cont==8 || cont==12 || cont ==14 || cont==18)	   
{
	grupo2.push(i);
	trace(grupo2); // output >> 7,11,13,17			
	qdr.scaleX = .5;
	qdr.scaleY= .5;
	qdr.addEventListener(MouseEvent.CLICK, onClickGrupo2);

}		

 

 

Na verdade, a intenção é que os arrays >> grupo1, grupo2, etc, estejam aninhados em um arrayTotal, então eu chamaria estes arrays como índices.

 

Mas, por enquanto, fico satisfeita em saber como chamar cada array 'grupo'.

 

Por exemplo >> grupo1.visible = false.

 

 

Abraços

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.