Tutorial 7 - Control de la línea de tiempo
Paso 7 de 11
Si pulsamos dos veces sobre cualquiera de los otros pájaros, veremos que nos lleva al mismo clip bird original, al que ya hemos dado los nombres de instancia wing1_mc y wing2_mc.
Probemos a detener un ala de un pájaro. Para ello tendremos que añadir la siguiente línea de código dentro de función stopMovie
:
bird1_mc.wing1_mc.stop();
de tal forma que la función stopMovie
quede como sigue:
function stopMovie(e:MouseEvent):void
{
stop();
play_btn.visible = true;
pause_btn.visible = false;
bird1_mc.wing1_mc.stop();
}
Probamos la película y pulsamos sobre el botón pause_btn. El ala izquierda del primer pájaro se detendrá a la vez que la línea de tiempo principal. Aunque reanudemos la película, este ala no volverá a reproducirse ya que no hemos escrito instrucciones para ello.
Antes de continuar, probemos a sustituir en la programación bird1_mc
por bird3_mc
, quedando la línea como sigue:
bird3_mc.wing1_mc.stop();
Si volvemos a probar la película, y pulsamos el botón pause_btn antes de que el pájaro 3 aparezca en escena, nos encontraremos con el siguiente error:
TypeError: Error #1009: No se puede acceder a una propiedad o a un método de una referencia a un objeto nulo.
at tutorial7_fla::MainTimeline/detener()
Esto quiere decir que al pulsar el botón para detener la película y ejecutarse la función stopMovie
, se hace referencia a un objeto que no existe en ese momento (bird3_mc
en este caso), y no puede por tanto ejecutar la instrucción de detener el ala de ese pájaro.
Pese a que esto no impide el funcionamiento correcto de nuestra película, para evitar este error comprobaremos qué pájaros están en el escenario en el momento de pulsar los botones, y sólo ejecutaremos las instrucciones para detener las alas de esos pájaros.