Trabajar con Flash supone todo un reto para los que venimos del mundo Web ya que, aunque aparentemente sencillo, la potencia y versatilidad que encierra ActionScript combinado con las posibilidades gráficas que ya de por si ofrece Flash, hacen de esta herramienta un verdadero misterio y quebradero de cabeza para los que somos relativamente ajenos al diseño gráfico.

Por suerte, este no es del todo mi caso, ya que siempre me he sentido atraído por la capacidad y la plasticidad visual de Flash, la que para mi sin duda es la herramienta más utilizada para crear animaciones y llamativos efectos visuales, a la espera del despegue definitivo de Silverlight.

Por ello me atrevo ahora a dar algunos de los trucos o consejos que me han ayudado a sacar el máximo partido de Flash en estos años de uso de la herramienta. Aquí va el primero de ellos…

DETENER UN FOTOGRAMA DURANTE UN INTERVALO DE TIEMPO

Muchas veces, cuando estamos trabajando con una animación, más concretamente cuando queremos pasar de una transición a otra, de un fotograma a otro, puede interesarnos establecer un cierto periodo de pausa justo al cargar el nuevo fotograma, o incluso antes de cargarlo, algo que habitualmente, si somos primerizos e inexpertos, se suele conseguir simplemente añadiendo un mayor número de fotogramas.

No obstante, mediante ActionScript podemos evitarnos la creación de fotogramas innecesarios, manteniendo así un cierto criterio, orden y control sobre las escenas. Además también podremos controlar en todo momento el intervalo de tiempo que queremos que se detenga nuestra animación, sin tener que estar contando fotogramas ni tener que hacer cálculos con los fps.

El código en que deberemos incluir como acción en el fotograma que queremos que se detenga por un intervalo de tiempo es el siguiente:

Ejemplo 1:

stop();

function seguir():Void {
play();
clearInterval(retardo);
}

retardo = setInterval(this, “seguir”, 3000);

Donde el valor marcado en negrita es el intervalo de tiempo en milisegundos.

Para los que os interese un poco más saber que se está haciendo con estas líneas de código, deciros que simplemente estamos ejecutando una parada de la animación mediante la llamada a la función stop(). A esto le sigue una llamada a la función setInterval() que es la que se encarga de introducir el retardo tras el cual se realizará una llamada a la función que hemos definido previamente como seguir(). Esta función que hemos creado nosotros y hemos denominado arbitrariamente seguir() es la que se encarga de reanudar la animación mediante la ejecución primero de la función play() y justo después de clearInterval(), que es la que anula y cierra la llamada inicial a setInterval().

Más información sobre las funciones predefinidas aquí utilizadas (en inglés):

stop () : Definición en el Sitio de Adobe Flash
play () : Definición en el Sitio de Adobe Flash
setInterval () : Definición en el Sitio de Adobe Flash
clearInterval () : Definición en el Sitio de Adobe Flash

Etiquetas:

Este post fue publicado el pasado 8 de noviembre del 2008 a las 22:27 en las categorías Flash. Puedes seguir los comentarios de este post através del RSS. También puedes dejar aquí tu comentario, o hacer un trackback desde tu propio blog.

1 comentario

  1. hola que tal, hace poco que comencé con el tema FLASH y me esta constando, hice un banner sencillo, para darte una idea, empieza una imagen emergiendo desde un fondo negro, después emergen también frases, las cuales se van turnando, haciendo esas frases agregue muchos fotogramas, mas alla de lo extenso q me quedo la linea de tiempo, mi idea en concreto es que las frases se repitan en un ciclo infinito pero respetando intervalos, osea no quiero que vuelva a emerger la imagen del principio, si no que una ves q la imagen emergió quiero únicamente que el texto se repita…

    Si me puedes ayudar estaría agradecido

    Gracias e interesante tus propuestas.

Deja tu comentario

Nombre*

Email*

Web

Comentario

Puedes utilizar las siguientes etiquetas: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Notificarme los nuevos comentarios por correo electrónico.
También puedes suscribirte sin comentar.