Tutorial 7 - Control de la línea de tiempo

Paso 5 de 11

La línea play_btn.visible = false; que habíamos colocado antes de las funciones (paso 3), se ejecutará directamente al probar la película cuando la cabeza lectora esté en el primer fotograma. Sin embargo, el resto de instrucciones sobre la propiedad visible, al estar dentro de una función, sólo serán ejecutadas cuando la función que las contiene sea llamada.

Seleccionamos Control > Probar película (Ctrl+Intro).

Podemos comprobar por un lado cómo se alterna la visibilidad de los botones play_btn y pause_btn al pulsarlos.

Observamos que pulsando pause_btn se detiene la línea de tiempo principal, es decir, el avance de los pájaros. Sin embargo las alas siguen en movimiento, ya que la función stop() hace referencia a la línea de tiempo principal, pero no a las líneas de tiempo anidadas dentro de ella (como en este caso las alas).

Por otro lado, también continúa el avance de las nubes por el escenario, ya que su movimiento depende del evento ENTER_FRAME, y este evento es independiente del desplazamiento de la cabeza lectora en la línea de tiempo principal.

Para solucionar el problema del movimiento de las alas, primero tendremos que saber cómo acceder a ellas desde la programación en la línea de tiempo principal.

Para acceder a una línea de tiempo anidada dentro de otra, en la programación escribiremos el nombre de la instancia principal, seguida de un punto, y seguida del elemento que está contenido dentro de ella.

Por ejemplo, supongamos que queremos reproducir la línea de tiempo de la mano derecha que se encuentra dentro del clip del brazo derecho que a su vez pertenece a un cuerpo. Para ello tendríamos que escribir lo siguiente:

body.right_arm.right_hand.play();

De esa forma la función play() haría referencia a esa mano. Por lo tanto, para poder acceder a las alas de cada pájaro tendremos que dar un nombre de instancia en primer lugar a cada pájaro, y después a las alas.