Ir para conteúdo

POWERED BY:

Arquivado

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

Darkk

[Resolvido] Como gerar nomes de variáveis dinamicamente?

Recommended Posts

Olá pessoal.

Estou tentando criar animações com Actionscript para vários MovieClips. Estes MovieClips têm nomes em sequência (tipo obj1, obj2, obj3...) a fim de facilitar a programação.

 

O código que me levaria a este resultado seria o seguinte:

var obj1xScale:Tween = new Tween(obj1, "_xscale", Regular.easeInOut, 100, 150, 4, true);
obj1xScale.onMotionFinished = function(){ this.yoyo; }
var obj2xScale:Tween = new Tween(obj2, "_xscale", Regular.easeInOut, 100, 150, 4, true);
obj2xScale.onMotionFinished = function(){ this.yoyo; }
e por aí vai!

 

Mas eu queria otimizar isso, tipo, colocar o código somente uma vez dentro de um loop:

 

for(var i=1; i<=10; i++){
   var obj1xScale:Tween = new Tween(this["obj" + i], "_xscale", Regular.easeInOut, 100, 150, 4, true);
   obj1xScale.onMotionFinished = function(){ this.yoyo; }
}
O meu grande problema é com a variável tipo Tween (obj1xScale). Eu não consigo gerar este nome de forma dinâmica de jeito nenhum! :wacko: Já tentei usar eval("obj" + i + "xScale") e this["obj" + i + "xScale"], mas nada dá certo.

 

Alguém tem idéia como é possível fazer isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

testa assim

 

 

for(var i=1; i<=10; i++){
   this["obj1xScale" + i] = new Tween(this["obj" + i], "_xscale", Regular.easeInOut, 100, 150, 4, true);
   this["obj1xScale" + i].onMotionFinished = function(){ this.yoyo; }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ou jogar em uma função assim:

var i:Number;
function animaTween(obj:MovieClip) {
	var objxScale:Tween = new Tween (obj, "_xscale", Regular.easeInOut, 100, 150, 4, true);
	objxScale.onMotionFinished = function(){
		objxScale.yoyo();
	}
};
for(i=1; i<=10; i++){
	animaTween(this["obj"+i]);
};

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.