Documentación de Flash CS3 |
|||
| Programación con ActionScript 3.0 > Utilización de fechas y horas > Control de intervalos de tiempo | |||
Cuando se desarrollan aplicaciones con Adobe Flash CS3 Professional, se tiene acceso a la línea de tiempo, que proporciona una progresión uniforme, fotograma a fotograma, a través de la aplicación. Sin embargo, en proyectos que sólo contienen código ActionScript hay que confiar en otros mecanismos de tiempo.
En algunos lenguajes de programación, es necesario crear esquemas temporales propios mediante sentencias de bucle como for o do..while.
Las sentencias de bucle suelen ejecutarse con la máxima rapidez permitida en el equipo, lo que significa que la aplicación se ejecuta más rápidamente en unos equipos que en otros. Si una aplicación debe tener un intervalo de tiempo coherente, es necesario asociarla a un calendario o reloj real. Muchas aplicaciones como juegos, animaciones y controladores de tiempo real necesitan mecanismos de tictac regulares que sean coherentes de un equipo a otro.
La clase Timer de ActionScript 3.0 proporciona una solución eficaz. A través del modelo de eventos de ActionScript 3.0, la clase Timer distribuye eventos del temporizador cuando se alcanza un intervalo de tiempo especificado.
La forma preferida de gestionar funciones de tiempo en ActionScript 3.0 consiste en utilizar la clase Timer (flash.utils.Timer) para distribuir eventos cuando se alcanza un intervalo.
Para iniciar un temporizador, primero es necesario crear una instancia de la clase Timer e indicarle la frecuencia con la que debe generar un evento del temporizador y la cantidad de veces que debe hacerlo antes de detenerse.
Por ejemplo, el código siguiente crea una instancia de Timer que distribuye un evento cada segundo y se prolonga durante 60 segundos:
var oneMinuteTimer:Timer = new Timer(1000, 60);
El objeto Timer distribuye un objeto TimerEvent cada vez que se alcanza el intervalo especificado. El tipo de evento de un objeto TimerEvent es timer (definido por la constante TimerEvent.TIMER). Un objeto TimerEvent contiene las mismas propiedades que un objeto Event estándar.
Si la instancia de Timer se establece en un número fijo de intervalos, también distribuirá un evento timerComplete (definido por la constante TimerEvent.TIMER_COMPLETE) cuando alcance el intervalo final.
A continuación se muestra una aplicación de ejemplo donde se utiliza la clase Timer:
package
{
import flash.display.Sprite;
import flash.events.TimerEvent;
import flash.utils.Timer;
public class ShortTimer extends Sprite
{
public function ShortTimer()
{
// Crea un nuevo objeto Timer de cinco segundos
var minuteTimer:Timer = new Timer(1000, 5);
// Designa detectores de los eventos de finalización e intervalo
minuteTimer.addEventListener(TimerEvent.TIMER, onTick);
minuteTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onTimerComplete);
// Inicia el tictac del temporizador
minuteTimer.start();
}
public function onTick(event:TimerEvent):void
{
// Muestra el recuento de tictac hasta ahora
// El destino de este evento es la propia instancia de Timer.
trace("tick " + event.target.currentCount);
}
public function onTimerComplete(event:TimerEvent):void
{
trace("Time's Up!");
}
}
}
Al crear la clase ShortTimer, se crea una instancia de Timer que hará tictac una vez por segundo durante cinco segundos. A continuación, añade dos detectores al temporizador: uno que detecta cada tictac y otro que detecta el evento timerComplete.
A continuación, inicia el tictac del temporizador y, a partir de ese punto, el método onTick() se ejecuta en intervalos de un segundo.
El método onTick() simplemente muestra el recuento de tictac actual. Después de cinco segundos, se ejecuta el método onTimerComplete(), que indica que se ha acabado el tiempo.
Cuando se ejecuta este ejemplo, aparecen las siguientes líneas en la consola o ventana de traza a una velocidad de una línea por segundo:
tick 1 tick 2 tick 3 tick 4 tick 5 Time's Up!
ActionScript 3.0 contiene varias funciones de tiempo similares a las que existían en ActionScript 2.0. Estas funciones se proporcionan como funciones del paquete flash.utils y operan del mismo modo que en ActionScript 2.0.
|
Función |
Descripción |
|---|---|
|
|
Cancela una llamada a |
|
|
Cancela una llamada a |
|
|
Devuelve el número de milisegundos transcurridos desde que se inició Adobe Flash Player. |
|
|
Ejecuta una función en un intervalo especificado (en milisegundos). |
|
|
Ejecuta una función especificada tras una demora especificada (en milisegundos). |
Estas funciones se conservan en ActionScript 3.0 para permitir la compatibilidad con versiones anteriores. Adobe no recomienda utilizarlas en nuevas aplicaciones de ActionScript 3.0. En general, resulta más sencillo y eficaz utilizar la clase Timer en las aplicaciones.
Flash CS3
Enviarme un mensaje de correo electrónico cuando se añadan comentarios a esta página | Informe de comentarios
Página actual: http://livedocs.adobe.com/flash/9.0_es/main/00000074.html