Cristalab

La Clase Timer, el setInterval de AS3

Por: Zguillez + 28.10.2006

Haciendo pruebas con Flash 9 descubrí la clase Timer, que es el sustituto del setInterval en AS3.

En realidad no lo sustituye del todo ya que un setInterval tal cual lo usábamos en AS2 nos seguirá funcionando en AS3. Pero la clase Timer tiene una gran ventaja sobre setInterval y es que podemos indicarle como parámetro cuantas veces queremos que ejecute la acción antes de parar, con lo que no tendremos que eliminar el intervalo con clearInterval().

Ejemplo de setInterval en Actionscript 2

Código :

function movimiento ()
{
   clip1._x += 10;
}
intervalo = setInterval(this, "movimiento", 1000);

Ejemplo de clase Timer en Actionscript 3

Código :

function movimiento(event:TimerEvent):void
{
   clip1.x += 10
}
var intervalo:Timer = new Timer(1000, 0);
intervalo.addEventListener(TimerEvent.TIMER, movimiento);
intervalo.start();

Como vemos el constructor de la clase Timer necesita dos parámetros, el tiempo en milisegundos y el numero de repeticiones (colocando 0 será indefinido).

El intervalo necesitará ser inicializado con la función start() y podremos pararlo en cualquier momento con la función stop().

PD. otra característica de AS3 que podemos ver en este código es que todas las propiedades de MovieClip ( _x , _y , _rotation , etc..) han sido sustituidas por flash.display.DisplayObject, con lo que el "clip1._x" pasa a ser "clip1.x" (sin el guión bajo)

Etiquetas actionscript_3

Comentarios | Enviar un comentario
Pues sí, utilizar el clearInterval la mayoría de las veces no servirá para nada (que además es una de esas cosas odiosas de AS2), y más añadiendo a esto la función setTimeout, que permite ejecutar una función después de cierto tiempo.
Pd: Cuando publicas ejemplos de AS3 convendría poner los correspondientes imports para que la gente no se pierda Thumbs up
Por: Zah
zah, creo que no es necesario ningún import para usar la clase Timer.

Muy buen post, Zguillez (Te me adelantaste en esto, por lo que te buscaré y acribillaré lentamente). Esta clase es, en resumidas cuentas, otra aproximación a Java. Timer también existe alla con el mismo tipo de comportamiento y métodos.
Por: Freddie
Muy buen tip, seguimos explorando las nuevas ventajas del AS3 Sonrisa
Por: MorphX
Gran Ejemplo, Freddie, posiblemente haga falta importar la clase "flash.utils.timer", cabe destacar para los más clásicos aun pueden usar el setInterval Riendo
Por: Shogoki_blog
upss, sorry, No me había logueado al responder
Por: shogoki

Freddie® :


zah, creo que no es necesario ningún import para usar la clase Timer.

Cierto, mi flash9, que funciona raro, sorry.

Freddie® :

Muy buen post, Zguillez (Te me adelantaste en esto, por lo que te buscaré y acribillaré lentamente).

Juas!, ¿es que aún te sobra tiempo Riendo ?

Shogoki_blog :

Gran Ejemplo, Freddie

Aunque todos "queremos" a Freddie® fíjate en quién ha escrito el post mmmm
Por: Zah

Shogoki_blog :

Gran Ejemplo, Freddie

Aunque todos "queremos" a Freddie® fíjate en quién ha escrito el post mmmm[/quote]

Ups, si creo que me sobro una "coma" allí, coloque Freddie, para responderle algo
Por: shogoki
bueno de esta clase nueva no me quejo, setInterval siempre me ha dado problemas espero que ahora cambie la cosa

...pero que sigo en mis trece eh, AS no deberia complicarse tanto, que toy arto de que me cambien la forma de hacer las cosas leñe!

Riendo
Por: noctam_blog
hola
Por: chili-206_blog
Estos ejemplos la verdad no son nada claros es un so enrrdigo
Por: firstg_GGG_blog
necesito saber como cargar un cronómetro de tiempo, cuando se activa un documento swf en flash

Gracias
Por: carga de doc. falsh_blog
quiero saber el significado amplio de timer trifasico marca siemens (simirel)ahora mismo.
Por: OLIVIA ZARATE DIAZ_blog
Deja un comentario
IMPORTANTE

Recuerda ser respetuoso, no insultes a otras personas, ni uses palabrotas, hay una persona al otro lado de la pantalla.

Habla bien, NO ESCRIBAS EN MAYUSCULA TODO, no escribas como en un SMS, evita cosas como "ke", "x q" y demás abreviaciones.

Aquí funcionan las etiquetas de los foros, puedes usar [b] para negrita, [img] para las imágenes, [url] para los enlaces, etc.

Si tienes preguntas técnicas, envíalas mejor al foro.