Clase de ActionScript 3 para retardar la ejecución de funciones
Esta clase de ActionScript 3 permite retrasar un cierto tiempo la ejecución de una acción de flash. Únicamente hay que crear un controlador de tiempo (TimerEvent.TIMER en AS3 o setInterval en AS2) que ejecute la acción deseada en el tiempo que le indiquemos.
Esta serÃa la clase Delay.as:
-
package com.zguillez.utils
-
{
-
import flash.display.Sprite;
-
import flash.utils.Timer;
-
import flash.events.TimerEvent;
-
//------------------------------------------
-
public class Delay
-
{
-
private static var _ruta:Sprite;
-
private static var _tiempo:Number;
-
private static var _timer:Timer;
-
private static var _accion:String;
-
//------------------------------------------
-
public static function action(tiempo:Number,segundos:Boolean,ruta:Sprite,accion:String)
-
{
-
_ruta = ruta;
-
_accion = accion;
-
_tiempo = (segundos == true) ? tiempo * 1000 : tiempo / _ruta.stage.frameRate * 1000 ;
-
_timer = new Timer(_tiempo, 1);
-
_timer.addEventListener(TimerEvent.TIMER, ejecuta);
-
_timer.start();
-
}
-
//------------------------------------------
-
private static function ejecuta(event:TimerEvent)
-
{
-
_ruta[_accion]();
-
}
-
//------------------------------------------
-
public static function reset()
-
{
-
_timer.reset();
-
}
-
//------------------------------------------
-
}
-
}
Las funciones y propiedades son estáticas para NO necesitar instanciar la clase (constructor new). Asà que para usarla en nuestro .fla o dentro de otra clase pondrÃamos esto:
-
import com.zguillez.utils.Delay
-
-
Delay.action(3, true, this, "saluda")
-
-
function saluda()
-
{
-
trace("hola");
-
}
De esta manera la función "saluda" se ejecutará a los 3 segundos de haber hecho la llamada.
Como parámetros a la función "accion" le pasaremos un boolean indicándole si el valor numérico son segundos o fotogramas.
-
_tiempo = (segundos == true) ? tiempo * 1000 : tiempo / _ruta.stage.frameRate * 1000 ;
También le indicaremos la ruta de la función a ejecutar con lo que puede estar dentro de cualquier MovieClip o clase.
La clase dispone de una función "reset" que permite cancelar la ejecución de la función en el caso de que aun estemos a la espera.
Post relacinonados:
2 Comments »
RSS feed for comments on this post. TrackBack URI










Gracias Zguillez, ya se a dónde venir cuando se me presente este problem.
Se agradece, estoy aprendiendo a actionscript y esto me ha sido muy util también podrÃÂas poner unas tags como delay con actionscript igual con este comentario basta seguro.
MartÃÂn Dos Santos
Turismo