Home » AS3 »Class »Trucos » Currently Reading:

Clase de ActionScript 3 para retardar la ejecución de funciones

agosto 16, 2007 AS3, Class, Trucos 2 Comments
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:

  1. package com.zguillez.utils
  2. {
  3.    import flash.display.Sprite;
  4.    import flash.utils.Timer;
  5.    import flash.events.TimerEvent;
  6.    //------------------------------------------
  7.    public class Delay
  8.    {
  9.       private static var _ruta:Sprite;
  10.       private static var _tiempo:Number;
  11.       private static var _timer:Timer;
  12.       private static var _accion:String;
  13.       //------------------------------------------
  14.       public static function action(tiempo:Number,segundos:Boolean,ruta:Sprite,accion:String)
  15.       {
  16.          _ruta = ruta;
  17.          _accion = accion;
  18.          _tiempo = (segundos == true) ? tiempo * 1000 : tiempo / _ruta.stage.frameRate * 1000 ;
  19.          _timer = new Timer(_tiempo, 1);
  20.          _timer.addEventListener(TimerEvent.TIMER, ejecuta);
  21.          _timer.start();
  22.       }
  23.       //------------------------------------------
  24.       private static function ejecuta(event:TimerEvent)
  25.       {
  26.          _ruta[_accion]();
  27.       }
  28.       //------------------------------------------
  29.       public static function reset()
  30.       {
  31.          _timer.reset();
  32.       }
  33.       //------------------------------------------
  34.    }
  35. }

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:

  1. import com.zguillez.utils.Delay
  2.  
  3. Delay.action(3, true, this, "saluda")
  4.  
  5. function saluda()
  6. {
  7.    trace("hola");
  8. }

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.

  1. _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.

Compártelo:

Clase de ActionScript 3 para retardar la ejecución de funciones
Visto 10.970 veces

Currently there are "2 comments" on this Article:

  1. Rafeo dice:

    Gracias Zguillez, ya se a dónde venir cuando se me presente este problem.

  2. 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

Comment on this Article:








Twitter: zguillez

AdvertisementAdvertisementAdvertisementAdvertisement

Recibe las novedades por email

Post destacado

Cómo conectar una aplicación Flash con una base de datos a través de PHP

27 dic 2013

En este post mostraré como comunicar una aplicación Flash/AIR con una base de datos MySQL a través de un fichero PHP en el servidor. Para realizar acciones como, por ejemplo, enviar puntuaciones de juegos, visializar rankings o enviar registros. En la parte de Flash crearemos una clase de Actionscript 3 que realizará el envío de variables a través de las clases URLLoader y URLVariables. package org.codigoactionscript.data { import flash.net.URLRequestMethod; import flash.net.URLVariables; import flash.events.Event; import flash.events.EventDispatcher; import flash.net.URLLoader; import flash.net.URLRequest; //—————————————————— public class PHPVarsData extends EventDispatcher { public static var CARGADO:String = "DATA_CARGADA"; public static var ERROR:String = "DATA_ERROR"; protected var …



Map

Ranking

Codigoactionscript.org: 4.65 sobre 5 (106 valoraciones)

twitter-widget.com