Ir para conteúdo

POWERED BY:

Arquivado

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

aletres

[Resolvido] Variável não entra dentro da function

Recommended Posts

Tenho 5 botões (movieclip) no menu: menu_botao_0, menu_botao_1, etc...

 

Quero apenas que no FOR (de 0 a 4 que correspondem a cada botão) passe a variável CONTA para dentro do "onRelease = function()"

 

Porém ele manda pra todos os botões o último CONTA (4). Já tentei de tudo e não consigo resolver. Alguém pode me ajudar???

 

Este é um resumo do código:

 

for (conta=0; conta<5; conta++) {

	botao = "menu_botao_" + conta;
	
	menu_botao[botao].onRelease = function() {
		pagina = conta; // A variável conta não consegue ser lida aqui.
	}

}

Se precisarem, este é o código completo:

 

stop();
pagina_temp = "";
for (conta=0; conta<5; conta++) {

	pagina_temp = conta+1;
	botao = "menu_botao_" + conta;
	menu_botao[botao].onRollOver = function() {
		if (this._currentframe > 5) {
			this.gotoAndPlay(3);
		} else {
			this.gotoAndPlay(1);
		}
	}
	menu_botao[botao].onRollOut = function() {
		if (this._currentframe < 5) {
			this.gotoAndPlay(10);
		} else {
			this.gotoAndPlay(5);
		}
	}
	
	menu_botao[botao].onRelease = function() {
		_root.pagina = pagina_temp;
		_root.cortina_mc.gotoAndPlay(1);
	}

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

O menu_botao[botao] é movieclip.

 

Na linha do FOR tem a variável conta que inclusive posso consultar seu valor dentro deste loop.

 

Por exemplo, para mostrar em um campo de texto dinâmico a variável conta:

 

for (conta=0; conta<5; conta++) {

	 campo.text = conta;

}

A questão é: se eu colocar uma function dentro deste loop, ele não consegue ler a varável:

 

for (conta=0; conta<5; conta++) {

	 menu_botao[botao].onRelease = function() {
		  campo.text = conta; // Neste local a variável conta não consegue ser lida.
	 }
}

Deu pra entender?

 

Se alguém puder me ajudar neste mistério, agradeço.

 

Alexandre

Compartilhar este post


Link para o post
Compartilhar em outros sites

pois é isso acontece mesmo, tem um macete pra resolver, teste assim:

 

 

for (conta=0; conta<5; conta++) {
	 menu_botao[botao].conta = conta
	 menu_botao[botao].onRelease = function() {
		  campo.text = this.conta; // Neste local a variável conta não consegue ser lida.
	 }
}

 

como o FOR já executou, o botão não sabe qual valor mesmo, o que eu fiz foi guardar o valor dentro de uma variável no do botão mesmo

 

 

[]´s

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.