martes, 14 de junio de 2016

CONTROL DE MOVIES CLIPS  EN ACTIONSCRIPT


Flash utiliza la metáfora de una línea de tiempo para transmitir animación o un cambio de estado. Cualquier elemento visual que emplea una línea de tiempo debe ser un objeto MovieClip o extender de la clase MovieClip. Mientras ActionScript puede dirigir cualquier clip de película para detener, jugar, o ir a otro punto de la línea de tiempo, no se puede utilizar para crear dinámicamente una línea de tiempo o añadir contenido en fotogramas específicos; esto sólo es posible mediante la herramienta de edición de Flash.
Cuando un clip de película se está reproduciendo, que avanza a lo largo de su línea de tiempo a una velocidad dictada por la velocidad de fotogramas del archivo SWF. Como alternativa, puede anular esta configuración estableciendo la Stage.frameRate Propiedad en ActionScript.

  • Reproducción de clips de película y detener la reproducción

los jugar() y detener()métodos permiten controlar las funciones básicas de un clip de película a través de su línea de tiempo. Por ejemplo, suponga que tiene un símbolo de clip de película en el escenario que contiene una animación de una bicicleta que se mueve por la pantalla, con su nombre de instancia para establecerbicicleta. Si el siguiente código se une a un fotograma clave en la línea de tiempo principal,

bicycle.stop ();

la bicicleta no se moverá (su animación no se reproduce). El movimiento de la bicicleta puede empezar a través de alguna otra interacción del usuario. Por ejemplo, si hubiera un botón denominadobotón de inicio, El código siguiente en un fotograma clave en la línea de tiempo principal sería hacerlo de modo que al hacer clic en el botón hace que la animación se reproduzca:

// Esta función se llamará cuando se hace clic en el botón. Se hace que el  
// Animación bicicleta para jugar. 
función ReproducirAnimación (event: MouseEvent): void 
{ 
    bicycle.play (); 
} 
// Registrar la función como un oyente con el botón. startButton.addEventListener (MouseEvent.CLICK, ReproducirAnimación);  

  • El avance rápido y rebobinado

los jugar() y detener()métodos no son la única forma de controlar la reproducción de un clip de película. También puede mover el cursor de reproducción hacia delante o hacia atrás a lo largo de la línea de tiempo de forma manual mediante el uso de lasiguiente fotograma() y prevFrame ()métodos. Las llamadas a cualquiera de estos métodos, se detiene la reproducción y mueve la cabeza lectora al fotograma siguiente o hacia atrás, respectivamente.Utilizando el jugar() método es análogo al llamar siguiente fotograma() cada vez que el objeto de clip de película enterFrameevento se dispara. A lo largo de estas líneas, se puede hacer que elbicicleta clip de película se reproduzca hacia atrás mediante la creación de un detector de eventos para el enterFrame evento y contando bicicleta para ir a su trama anterior en la función de detector, como sigue:
// Esta función es llamada cuando se activa el evento enterFrame, lo que significa  
// Se llama una vez por cuadro. 
función everyFrame (event: Event): void 
{ 
    si (bicycle.currentFrame == 1) 
    { 
        bicycle.gotoAndStop (bicycle.totalFrames); 
    } 
    más 
    { 
        bicycle.prevFrame (); 
    } 
} 
bicycle.addEventListener (Event.ENTER_FRAME, everyFrame);

  • Salto a fotogramas diferentes y utilizando etiquetas de fotogramas


Envío de un clip de película a un nuevo marco es un asunto sencillo. Las llamadas a cualquieragotoAndPlay () o gotoAndStop ()saltará el clip de película al número de trama especificado como parámetro. 
Cualquier marco en la línea de tiempo se puede asignar una etiqueta. Para ello, seleccione un fotograma de la línea de tiempo e introduzca un nombre en el campo Etiqueta de fotograma en el inspector de propiedades.Las ventajas del uso de etiquetas de fotogramas en lugar de números son particularmente evidentes cuando se crea un clip de película compleja. 
Cuando el número de fotogramas, capas y preadolescentes en una animación se hace grande, etiquetar los fotogramas importantes con descripciones explicativas que representan los cambios en el comportamiento de la imagen en movimiento (por ejemplo, "off", "caminar" o "funcionamiento") .
 Esto mejora la legibilidad del código y también proporciona flexibilidad, ya que las llamadas de ActionScript que van a un fotograma con la etiqueta son punteros a una sola referencia, la etiqueta-en lugar de un número de trama específica. Si posteriormente se decide mover un segmento particular de la animación a un marco diferente, usted no tendrá que cambiar el código ActionScript, siempre y cuando mantenga la misma etiqueta para las tramas de la nueva ubicación.
Para representar las etiquetas de fotogramas en el código, ActionScript 3.0 incluye la clase FrameLabel. Cada instancia de esta clase representa una etiqueta de fotograma único, y tiene unanombre propiedad que representa el nombre de la etiqueta de fotograma como se especifica en el inspector de propiedades, y una marco propiedad que representa el número de cuadro del cuadro donde se coloca la etiqueta en la línea de tiempo.
Con el fin de conseguir el acceso a las instancias FrameLabel asociados con una instancia de clip de película, la clase MovieClip incluye dos propiedades que devuelven directamente objetos FrameLabel.loscurrentLabelspropiedad devuelve una matriz que consta de todos los objetos FrameLabel en toda la línea de tiempo de un clip de película. loscurrentLabel propiedad devuelve una cadena que contiene el nombre de la etiqueta de fotograma más recientemente encontró a lo largo de la línea de tiempo.

  • Trabajo con escenas

En el entorno de edición de Flash, puede utilizar escenas para delimitar una serie de líneas de tiempo que un archivo SWF avanzaría. En el segundo parámetro de lagotoAndPlay () o gotoAndStop ()métodos, se puede especificar una escena para enviar la cabeza lectora. Todos los archivos FLA comienzan con solamente la escena inicial, pero se pueden crear nuevas escenas.
Un documento de Flash que contiene varias escenas puede ser difícil de mantener, sobre todo en entornos de varios autores. Varias escenas también pueden ser ineficientes en ancho de banda, debido a que el proceso de publicación combina todas las escenas en una sola línea de tiempo. Esto provoca una descarga progresiva de todas las escenas, aunque nunca se tocan. Por estas razones, el uso de múltiples escenas a menudo se desaconseja a excepción de la organización de varias animaciones largas basadas en la línea de tiempo.
los escenaspropiedad de la clase MovieClip devuelve una matriz de objetos de escena que representan a todas las escenas del archivo SWF. loscurrentScene propiedad devuelve un objeto de la escena que representa la escena que se está reproduciendo.
La clase de escena tiene varias propiedades que dan información sobre una escena. losetiquetaspropiedad devuelve una matriz de objetos que representan FrameLabel las etiquetas de fotogramas en esa escena.losnombrepropiedad devuelve el nombre de la escena como una cadena. losnumFrames propiedad devuelve un entero que representa el número total de fotogramas de la escena.

  • EJEMPLOS:

Flash CS5, MovieClip Control with ActionScript Tutorial