Tutorial 7 - Control de la línea de tiempo

Paso 9 de 11

Vamos a explicar uno de los condicionales para comprender mejor el código. Por ejemplo, con la condición

if (currentFrame > 23 && currentFrame < 525)

estamos comprobando si el fotograma actual es mayor que el fotograma 23 y, además, es menor que el fotograma 525.

Si se cumplen ambos requisitos, entonces la condición completa se cumple, y pasarán a ejecutarse las instrucciones que estén entre las llaves de ese if. Si alguna de las partes de la condición no se cumple, no se ejecutarán las instrucciones correspondientes.

Según en qué fotograma estemos, puede que se cumplan las condiciones que hemos escrito para todos los pájaros (por ejemplo el fotograma 200), para sólo alguno de ellos (por ejemplo el fotograma 15), o para ninguno de los 3 (por ejemplo el fotograma 580).

Si probamos la película, veremos que ahora se paran correctamente las alas de los tres pájaros, y no se nos informa de ningún error. Ahora nos falta volver a activar el movimiento de las alas cuando volvemos a reproducir la película.

Para activar de nuevo el movimiento de las alas, copiamos en la función playMovie las sentencias condicionales que hemos utilizado en la función stopMovie. Después, simplemente sustituimos el método stop() por el método play(), por ejemplo:

if (currentFrame < 501) 
{
    bird1_mc.wing1_mc.play();
    bird1_mc.wing2_mc.play();
}

Probamos de nuevo la película. Ahora con los botones play_mc y pause_mc podemos detener y reanudar tanto el avance de los pájaros por el escenario, como el movimiento de sus alas.

Además de parar con stop() y reanudar con play(), existen otros métodos interesantes a la hora de controlar una línea de tiempo, como por ejemplo:

  • nextFrame() y prevFrame(), para avanzar y retroceder un fotograma
  • gotoAndPlay() y gotoAndStop(), para ir a un fotograma concreto, y una vez allí continuar o detenernos, escribiendo dentro del paréntesis el número de fotograma al que queremos ir o su nombre (etiqueta).