Ir para conteúdo

POWERED BY:

Arquivado

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

Jonas Cowboy

setInterval e clearInterval

Recommended Posts

Pessoal, precisava de uma ajuda bem básica sobre setInterval e clearInterval.

 

Seguinte, eu fiz um site em flash onde o conteudo do site é chamado através de um LoadMovie. Assim, tenho um palco principal com um MC com a instancia chamado "alvo" e ele chama o conteudo por swf externo (tem o swf "home, o "quem somos" e por ai vai).

 

Acontece que o swf "home" é um slide show com 3 imagens que demora 10 segundos pra mudar de foto em foto (primeira foto no primeiro frame, segunda foto no 2°frame, terceira foto no 3°frame, ai volta pro 1° frame e por ai vai...) para essa função eu coloquei o seguinte AS:

 

na camada vazia que fica sobre os frames das fotos chamada action:

 

function fundo() {
	_root.alvo.play() 
}

Nos frames da foto 1 e 2 coloquei o seguinte AS

 

stop();

setInterval(fundo, 9000);

E na 3° foto o AS

 

_root.alvo.gotoAndStop(1)

Até ai maravilha, o slide funciona perfeito, mas acontece que quando eu chamo outro swf (como "quem somos") o setInterval continua agindo no _root.alvo, assim meu filme "quem somos" a animação de entrada fica em loopinge não consigo parar, mesmo eu colocando no primeiro frame do "quem somos" o código

 

_root.alvo.clearInterval()

Também quando eu volto a carregar a "home" a transição das fotos vai mais rápido que o normal pq ele acumula o setInterval. Eu queria uma ajuda pra fazer o setInterval parar quando carregar outro swf e que quando voltasse ao swf "home" o setInterval voltasse ao normal.

 

Tem como alguem me dar uma força nisso? Abs!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para evitar esse tipo de problema, normalmente deve ser colocado uma variavel responsavel pela função do setInterval

 

Assim:

var tempo = setInterval(intervalo, 9000);

function intervalo(){
//seu código;
clearInterval(tempo);
}

Ai se você precisar usar o clearInterval() basta mandar ele dar clear na variavel responsavel pelo intervalo ;) e se quiser chamar novamente é só fazer o mesmo processo que fez para chamar a primeira vez.

 

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.