Jump to content


Photo

Problema Com Eval E Função Do Rollover Do Mc


  • Faça o login para participar
1 reply to this topic

#1 comunik

comunik

    Turista

  • Usuários
  • 58 posts
  • Sexo:Não informado

Posted 16/01/2009, 17:00

Boa tarde.
Estou com o seguinte AS

var fi = Array('DSC_0757.jpg','DSC_0803.jpg','DSC_0821.jpg','DSC_0832.jpg','DSC_0837.jpg','DSC_0850.jpg','DSC_0871.jpg','DSC_0882.jpg','DSC_0899.jpg','DSC_0921.jpg','DSC_0932.jpg','DSC_0963.jpg','DSC_0979.jpg','DSC_0992.jpg');
var fle = fi.length;
for(var i=0;i<fle;i++) {
	path = eval('f'+(i+1));
	loadMovie('../colecao/'+fi[i],path.alvo);
	path.onRollOver = function() {
		trace(i);
	};
}

o problema é que não consigo usar mais a variavel "i" dentro da função do RollOver pois retorna sempre 14, que é o número total de valores dentro da array "fi". Alguém sabe dizer o problema?

#2 Pedropauloalmeida

Pedropauloalmeida

    Fale ao motorista somente o indispensável

  • Usuários
  • 1376 posts
  • Sexo:Masculino
  • Localidade:Santo André SP

Posted 08/02/2009, 10:22

Isso que você quer fazer está da forma errada.
Tente assim:

var arrBotoes:Array = new Array(botao1_mc, botao2_mc, botao3_mc);
var imagens:Array = new Array("imagem1.jpg", "imagem2.jpg", "imagem3.jpg");

for (var i:Number = 0; i < imagens.length; i++) {
	 // botao da vez:
	 var bt:MovieClip = arrBotoes[i];
	// guardando o valor de 'i' em cada botão:
	bt.idxImagem = i;
   // Assinando a função:
   bt.onRollOver = function():Void {
		  trace("carregar a imagem " + imagens[this.idxImagem]);
		  loadMovie('../colecao/' + imagems[this.idxImagem] , path.alvo
	}
}


Só não entendi o target ao certo. Mas o segredo é criar um prop que guarde o valor de 'i' em seu botão para referência futura. Entendeu? Com isso você pode acessar o valor dentro das funções desse objeto com this.propI (no caso eu dei o nome de idxImagem - "index 'i' da imagem). Isso é uma coisa válida em AS2 já que a classse MovieClip em AS2 estende a classe Object que é uma classe dinâmcia, ou seja, que aceita propriedades novas em tempo real.
Já em AS3 isso não seria assim tão simples, já que MovieClip estende a classe Sprite que não aceita props dinamicamente.

Abraços.

pp

Edição feita por: Pedropauloalmeida, 08/02/2009, 10:22.





1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq