Unidad 18. Navegación - ActionScript (V)

Pero, ¿qué pasa si queremos ejecutar la orden desde dentro de clipPadre? Imagina que dentro del movieclip hay un botón y el clip clipHijo. Queremos que al pulsar el botón se reproduzca el fotograma 20 de clipHijo, entonces deberíamos escribir lo siguiente en las acciones del botón:

import flash.events.*;



miBoton.addEventListener(MouseEvent.MOUSE_UP, miFuncion);



function miFuncion(event:MouseEvent):void

{

   clipHijo.gotoAndPlay(20);

}

Como puedes ver esta vez no hemos mencionado a clipPadre en la línea de código. No es necesario porque ya nos encontramos dentro de él.

También podemos referenciarnos a elementos superiores utilizando la propiedad parent. De este modo si nos encontrásemos dentro de clipHijo y quisiésemos avanzar al fotograma 20 de clipPadre podríamos escribir:

with (parent) {

   this.parent.gotoAndPlay(20);

}

Donde this indica el clip donde nos encontramos y parent hace que nos coloquemos en el nivel inmediatamente superior.

De esta forma, sólo deberemos escribir la ruta de contenedores o padres hasta llegar al objeto del cual queremos modificar o ejecutar un método.

Podemos hacer que el elemento padre escuche eventos producidos dentro del hijo, con lo que denominamos propagación en burbuja. Puedes ver cómo en este avanzado Avanzado.

Por lo demás, el funcionamiento de un clip no se diferencia en nada a la línea de tiempos de cualquier otra película. Podemos etiquetar los fotogramas de igual modo para llamarlos directamente por su nombre:

miClip.gotoAndStop("etiqueta");

Y saltar de fotograma a fotograma para manejar las animaciones de la forma en que nosotros queramos.

 

Igual que vimos antes con los botones, los movieclips tienen manejadores de eventos que nos permitirán ejecutar código dependiendo de los eventos que se produzcan sobre ellos.

Responden a los a todos los eventos de ratón que ya hemos visto, y cualquier evento que comparta con el resto de objetos de visualización (DisplayObject). Vamos a ver los eventos específicos del MovieClip:

  • Event.ADDED ("added") - Se produce cuando el movieclip se añade a la lista de visualización de un contenedor (contenedor.addChild(miClip)).
  • Event.ENTER_FRAME ("enterFrame") - Se produce cuando la cabeza lectora entra en un fotograma, pero también se produce constantemente si sólo hay un fotograma o si la reproducción está parada. En este caso, depende de la velocidad del MovieClip. Por ejemplo, un MovieClip que se reproduce a 24 FPS produce este evento 24 veces por segundo. Recuerda este evento porque es muy útil.
  • Event.EXIT_FRAME ("exitFrame") - Igual que el anterior, pero se produce al salir del fotograma.
  • Event.REMOVED ("removed") - Se produce cuando el MovieClip se quita de la lista de visualización de un contenedor (contenedor.removeChild(miClip)).

 

Pág. 18.5

Atrás  Inicio  Adelante