Ir para conteúdo

POWERED BY:

Arquivado

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

Raul.Rib

variavel no nome da função

Recommended Posts

Olá novamente!!

 

tenho uma série de botões instanciados de "img1_btn" a "img40_btn"

e preciso fazer o seguinte:

 

img1_btn.addEventListener(MouseEvent.CLICK, carrega1)
function carrega1(e){
	fotografia = 1
}

img2_btn.addEventListener(MouseEvent.CLICK, carrega2)
function carrega2(e){
	fotografia = 2
}

img3_btn.addEventListener(MouseEvent.CLICK, carrega3)
function carrega3(e){
	fotografia = 3
}

eu preciso MESMO criar 40 funções?

nao tem um modo que eu possa automatizar isso?

 

obrigado!

 

Raul

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando você usa um listener de click, mouse over, etc, ele sempre herda as informações do objeto que disparou o evento.

No caso você pode usar isso para não precisar fazer 40 funções.

 

//percorre todas as imagens que irão ter ação

//sua variável de fotografia
var fotografia:Number;
//qtd de botoes
var qtd:Number = 40;
for(var i:Number = 0; i < qtd; i++) {
   //adiciona o movieClip do palco a uma variável do tipo MovieClip
   var img:MovieClip = this["img"+i+"_btn"];
   //salva um id para este movieClip
   img.id = i;
   //adiciona o click para o MovieClip
   img.addEventListener(MouseEvent.CLICK, onClick);   
}

//função de click
function onClick (e:MouseEvent):void {
   //mostra o id do movieClip clicado
   trace(e.target.id);
   fotografia = e.target.id;
}

Abrs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Italo!

 

obrigado pela resposta!

 

mas quando tento seu código, ele da uma msg de erro:

 

TypeError: Error #1009: Cannot access a property or method of a null object reference.

at fotografia_teste_fla::MainTimeline/fotografia_teste_fla::frame1()

 

obrigado!

 

Raul

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.