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:
{
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:
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.
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