Ir para conteúdo

POWERED BY:

Arquivado

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

losrs

[Resolvido] Problema SetInterval

Recommended Posts

Pessoal, o problema é o seguinte:

 

Tenho um jogo onde vários mc´s sao carregados e ficam trocando de lugar em um certo tempo.

Quando coloco o código do SetInterval fora de uma funçao o clearInterval funciona na boa.

O problema é que tenho que chamar o SetInterval apartir de um botao que da inicio ao jogo.Só que ai o clearInterval deixa de funcionar.

 

Dese jeito nao funciona:

btn_jogo.onPress = function () {
	var intervalo = setInterval(cambio, tempo);
	btn_jogo.enabled = false;
	btn_jogo._alpha = 0;
}


function carregarMC() {
	for (i=0; i<ArrayPosition.length; i++) {
		_root.attachMovie("mc_aluno"+"_"+i, "mc_aluno"+"_"+i, i, {_x:ArrayPosition[i][0], _y:ArrayPosition[i][1]});
		_root.mc_aluno_0.enabled = true;
		mc_aluno_0.onPress = function() {
			this.enabled = false;
			_root.contAcerto = _root.contAcerto+1;
			_root.pontosAula = _root.pontosAula+10;
			_root.Som();
			if (contAcerto>=3) {
				clearInterval(intervalo);
				_root.desabilitarMC();
				_root.removerMC();
				_root.chamaFinal();
			} else {
				_root.cambio();
			}
		};
	}
	
}

O código todo do jogo é bem maior, postei a parte que acredito ser o problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tive o mesmo problema ontem...

 

resolvi transformando a variável em global. Ao invé de:

 

var intervalo = ...

 

fiz:

 

_global.intervalo = ...

 

Aí funcionou pois, a variável está dentro de uma função, quando tento acessá-la fora da mesma não dá certo.

 

Testa aí...

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Surgiu uma outra dúvida:

 

Após chamar o clearInterval tem como chamar novamente o setInterval com o mesmo nome.

 

Exemplo:

 

No jogo tenho um botao de saída que chama um mc, neste mc há dois botoes um confirmando a saída e outra que retorna ao jogo.Ao clicar no botao para retornar ao jogo teria que habilitar novamente o setInterval.Tem como?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim...

 

Basta colocar o setInteval dentro de uma função, caso ainda não esteja.

 

function comecar(){

_global.intervalo = ...

}

 

daí ao invé de você colocar:

 

btn_jogo.onPress = function () {
	var intervalo = setInterval(cambio, tempo);
	btn_jogo.enabled = false;
	btn_jogo._alpha = 0;
}

para chamar a função, você coloca:

 

btn_jogo.onPress = function () {
	comecar();
	btn_jogo.enabled = false;
	btn_jogo._alpha = 0;
}

e no botão para volvar ao início faz a mesma coisa.

Você pode fazer isso com o clearInterval tbém, transforma ele em função e chama toda vez que precisar:

 

function limpar(){

clearInterval(_global.intervalo);

}

 

 

 

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.