Tutorial 7 - Control de la línia de temps

Pas 10 de 11

Fins aquí hem vist com podem controlar el cap lector tant de la línia de temps principal com de les línies de temps imbricades.

Ara ens queda aturar i reprendre el moviment dels núvols, ja que aquest moviment és independent del desplaçament del cap lector en la línia de temps principal.

El moviment de cada núvol l'havíem creat en el tutorial anterior amb el codi següent:

cloud1_mc.addEventListener(Event.ENTER_FRAME, wind);
cloud2_mc.addEventListener(Event.ENTER_FRAME, wind);

Perquè els núvols s’aturin, n’hi haurà prou d'eliminar els detectors de l'esdeveniment ENTER_FRAME. Per a eliminar-los n'hi ha prou de copiar el mateix codi que es va usar per a crear-los, i substituir addEventListener per removeEventListener.

cloud1_mc.removeEventListener(Event.ENTER_FRAME, wind);
cloud2_mc.removeEventListener(Event.ENTER_FRAME, wind);

Per tant, afegirem les dues sentències amb removeEventListener a la funció stopMovie abans de l'última clau que marca el final de la funció. Perquè el moviment es reprengui després, tornarem a afegir en la funció playMovie les dues sentències amb addEventListener.

Si, a més d'aturar el moviment, volguéssim que els núvols deixessin de ser arrossegables, hauríem de seguir el mateix procediment, és a dir, copiar la mateixa sentència que utilitzem per a agregar el listener i substituir add per remove. En aquest cas permetrem que els núvols puguin arrossegar-se encara que la línia de temps estigui aturada, així que no eliminarem aquests listeners.

El mètode removeEventListener pot ser molt útil en diverses circumstàncies, per exemple, per a eliminar la interactivitat d'un botó o un clip sense necessitat d'amagar-lo ni eliminar-lo de l’escenari.

Seleccionem Control > Probar película. Ara podem aturar i reprendre totes les animacions (ocells, ales i núvols).