Ir para conteúdo

POWERED BY:

Arquivado

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

kirax

setInterval no AS3?

Recommended Posts

Olá amigos, estou com dificuldades de usar o setInterval no AS3.

Antes eu usava a seguinte ação no AS2:

 

stop();

milisegundos = 1000;

id = setInterval(function() {

play();

clearInterval(id);

}, milisegundos);

 

 

Agora no AS3 não estou conseguindo fazer o mesmo, dei uma olhada no manual do AS3 na função Timer mas não consegui entender.

 

Espero que possam me ajudar.

Desde já, obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom a maneira que você faz não é a mais correta apesar de funcionar...

 

Mas tente assim:

var tempo = setInterval(intervalo, 1000);

function intervalo():void{
 trace('intervalo iniciado');
 clearInterval(tempo);
}

Assim deve funcionar

 

E assim que se usa a função timer:

import flash.utils.Timer;

var tpm:Timer;
tpm = new Timer(1000);
tpm.addEventListener(TimerEvent.TIMER, timerHandler);
tpm.start();

function timerHandler(event:TimerEvent):void{
	trace('timer iniciado');
	tpm.stop();
}

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala berseck.

 

Cara, eu tentei usar da maneira que você sitou, mas não acontece nada.

Não da nem um erro, mas ele simplesmente não faz nada além do trace.

 

O que eu usava era AS2, como to tentano aprender AS3 agora um amigo me disse que o timer era melhor para fazer o que eu queria.

O que eu quero que aconteça com a action é, no frame em que eu colocá-la ele pausa por 1 ou 2 segundos e depois volta o play.

Isso que não estou conseguindo fazer. :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom não sei qual é seu conhecimento de Action ... mas o código que eu passei de timer é EXATAMENTE igual ao seu setInterval...

 

Vou colocar uns comentários nele...

 

//Faço o import necessário
import flash.utils.Timer;
//Crio a variavel Timer
var tpm:Timer;
//Aqui eu digo quantos milisegundos dentro do new Timer(milisegundos) ele vai demorar para realizar o intervalo
tpm = new Timer(1000);
//Coloco o listener de acordo com o que ele faz
tpm.addEventListener(TimerEvent.TIMER, timerHandler);
//Coloco aqui um start para ele funcionar sem parar
tpm.start();
//Aqui é a função do timer
function timerHandler(event:TimerEvent):void{
//Ele da um trace e aparece no output 1 vez timer inciado
 trace('timer iniciado');
//Aqui é a mesma coisa que o clearInterval eu paro o timer por isso ele roda apenas 1 vez... para deixar em loop eterno remova ou comente o tpm.stop();
 tpm.stop();
}

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma dica, se eu quiser que o timer avance mais rapido no final do tempo como faço?

 

Eu quero que uma mensagem apareça 20 vezes de inicio parecça de 1 em 1 segundo mas dps no final seja mais rapido que isso!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie um contador e a cada chamada faça o incremento, quando chegar no 15 de um total de 20 por exemplo, você acelera o tempo definindo um novo valor para a variável...

 

Att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie um contador e a cada chamada faça o incremento, quando chegar no 15 de um total de 20 por exemplo, você acelera o tempo definindo um novo valor para a variável...

 

Att.

 

 

Como dou o intervalo? com o setinterval?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala berseck.

 

Cara, eu tentei usar da maneira que você sitou, mas não acontece nada.

Não da nem um erro, mas ele simplesmente não faz nada além do trace.

 

O que eu usava era AS2, como to tentano aprender AS3 agora um amigo me disse que o timer era melhor para fazer o que eu queria.

O que eu quero que aconteça com a action é, no frame em que eu colocá-la ele pausa por 1 ou 2 segundos e depois volta o play.

Isso que não estou conseguindo fazer. :(

 

Seu mesmo código:

import flash.utils.setTimeout;
stop();
var milisegundos:uint = 1000;
setTimeout(this.play, milisegundos);

Flw!

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.