Tutorial 6 - Animació amb ActionScript 3.0

Pas 6 de 19

Si reduïm el panell Acciones prement la barra grisa superior del panell per a veure l'escenari, no veiem cap canvi en el núvol. Això es deu al fet que la programació s'executa quan provem o publiquem la pel·lícula (temps d'execució), i no directament en l'escenari d'edició (temps d'edició).

Per a comprovar com ha canviat l'alfa del núvol haurem de provar la pel·lícula amb Control > Probar película (Ctrl+Intro).

Si hem assignat un valor per a una propietat en el codi, aquest valor prevaldrà sobre el que hàgim definit en el temps d'edició. Per exemple, en el cas de l'alfa, podem assignar diferents valors en l'inspector de Propiedades, però quan provem la pel·lícula sempre veurem el núvol amb el 60% de l'alfa, ja que és el valor que hem introduït en el codi.

De la mateixa manera, si assignem en el codi valors per a altres propietats com, per exemple, les posicions X i Y del clip, aquest apareixerà en les coordenades que especifiquem en la programació, i no en les coordenades en les quals l'hàgim situat en l'escenari.

Per a afegir interactivitat a una pel·lícula, el més probable és que necessitem detectar quan es produeix un determinat esdeveniment (que s'hagi fet clic sobre un botó, que s'hagi premut una tecla, etc.), i després executar una acció sobre la base d’aquest esdeveniment.

Per a això hem d’agregar un listener, és a dir, afegir a un objecte la capacitat de detectar si ha passat alguna cosa, i que cridi una funció quan això passi.

La manera general de crear un listener és la següent:

nameInstance.addEventListener(nameEvent, nameFunction);

En el nostre cas farem que el núvol s'arrossegui quan el premem.

Per a això afegirem la línia següent al codi:

cloud1_mc.addEventListener(MouseEvent.MOUSE_DOWN, drag);

Amb aquest codi hem afegit, a la nostra instància cloud1_mc, un detector per a un esdeveniment del ratolí (MouseEvent). En concret, l'esdeveniment del ratolí que volem que detecti és si l'usuari l'ha premut (MOUSE_DOWN). Si és així, executarà una funció que hem anomenat drag, i que definirem més endavant.