Ir para conteúdo

POWERED BY:

Arquivado

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

Gui

setInterval anulando outro

Recommended Posts

Pessoal,

 

Tenho 3 animações no meu flash.

 

Qdo acaba a primeira animação, estou dando uma pausa para que a animação fique na tela por um tempo e depois desse tempo, vai pra segunda animação e assim por diante.

 

Para dar a pausa, estou usando a seguinte AC:

 

var para
this.stop();
function pause() 
{
	play();
	clearInterval(para);
}

para = setInterval(pause, 5000);

O problema é que preciso dar pausa 2x no meu flash. A primeira é na transição da primeira pra segunda animação e a outra é da segunda pra terceira animação. Só que qdo coloco o script pela segunda vez no flash, ele automaticamente está anulando o primeiro script. Alguém ai sabe o pq isso ocorre?

 

PS: Estou usando layers distintas para adicionar os scripts.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você nomear elas nao adianta? nome ao movieclip ou a layer..

pra mim resolveu uma vez assim.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você nomear elas nao adianta? nome ao movieclip ou a layer..

pra mim resolveu uma vez assim.

Kra, consegui resolver o problema apenas mudando o nome da variavel e da função. Ficou assim:

 

var para2
this.stop();
function pause2() 
{
	play();
	clearInterval(para2);
}

para2 = setInterval(pause2, 5000);

Fica ai a dica para quem tiver com o mesmo problema http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora to com outro problema, o comando gotoAndPlay ta anulando o setInterval.

 

Tipo, tenho 3 botoes de açao onde cada uma vai pra uma frame e roda a partir dela. Qdo clico em cada botao, exeuta uma action com gotoAndPlay. Ele joga pra frame que foi setada mas ele ignora a action de setInterval.

 

Se eu nao clicar nos botoes, o setInterval funciona normalmente. Alguem sabe o que pode ser isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

infelizmente meu problema é semelhante ao seu, mas o meu eu nao faço ideia do que seja, acredito que seja as mascaras q tao fazendo a ação nao começar da onde quero...

e to esperando ajuda pro meu ainda T_T...

mas espero que alguem te ajude.

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao entendi direito sua duvida...

 

o setInterval ta funfano msm ??

tente por um stop antes da variavel..

 

 

explique melhor para q eu possa ajudar !

 

abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa gente...

bom vou tentar ajudar...

 

1º nesses casos eu aconselho a usar setTimeout em vez de SetInterval... pq?... pq a setTimeout faz a mesma coisa que você esta fazendo soh que não precisa ser 'limpo', pq ele soh acontece uma vez... ao contrario do setInterval que fica sendo executado ate alguem dar um clear no id dele. Isso resolve o problema de vários intervalos independentes, jah q como você não precisa limpar eles você não precisa guardar referencias para os ids dos intervalos.

 

2º outra coisa que acontece quando usamos o setInterval e o setTimeout é que a função pode ocorrer em outro 'escopo', isso faz com que o 'pause' no caso ou qualquer outra função... seja chamada em outro lugar, assim o stop não funciona pq ele esta sendo chamado para outro objeto... dai a impressão de não estar acontecendo nada... para ver em que escopo a função esta sendo chamada coloque um 'trace(this)', se der 'undefined' você descobriu pq o stop não funcionou... para resolver isso eu costumo passar o objeto como parâmetro no setInterval/setTimeout, dai o código ficaria +/- assim.

this.stop();
function pause(o){
	o.play();
}
setTimeout(pause, 5000, this);

espero que isso ajude ^^

aeeeeeeeeeeeeeeeeeeeeeeee

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa gente...

bom vou tentar ajudar...

 

1º nesses casos eu aconselho a usar setTimeout em vez de SetInterval... pq?... pq a setTimeout faz a mesma coisa que você esta fazendo soh que não precisa ser 'limpo', pq ele soh acontece uma vez... ao contrario do setInterval que fica sendo executado ate alguem dar um clear no id dele. Isso resolve o problema de vários intervalos independentes, jah q como você não precisa limpar eles você não precisa guardar referencias para os ids dos intervalos.

 

2º outra coisa que acontece quando usamos o setInterval e o setTimeout é que a função pode ocorrer em outro 'escopo', isso faz com que o 'pause' no caso ou qualquer outra função... seja chamada em outro lugar, assim o stop não funciona pq ele esta sendo chamado para outro objeto... dai a impressão de não estar acontecendo nada... para ver em que escopo a função esta sendo chamada coloque um 'trace(this)', se der 'undefined' você descobriu pq o stop não funcionou... para resolver isso eu costumo passar o objeto como parâmetro no setInterval/setTimeout, dai o código ficaria +/- assim.

this.stop();
function pause(o){
	o.play();
}
setTimeout(pause, 5000, this);

espero que isso ajude ^^

aeeeeeeeeeeeeeeeeeeeeeeee

Não funcionou tb. :wacko:

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.