17. ActionScript: accions bàsiques

Índex | Anterior | Següent

 

17.1. Engegar i parar

Si cap especificació disposa una cosa diferent, l'execució d'una animació s'inicia automàticament en el fotograma primer de l'escena primera i després segueix l'ordre de les escenes i dins cada una d'aquestes l'ordre dels fotogrames.

Sovint, però, cal aturar l'execució de l'animació i tornar-la a engegar; això s'aconsegueix amb

stop()

play()

Aquestes accions poden assignar-se, segons que calgui, a un fotograma o a un botó.

La sola presència d'un botó en un fotograma no basta per aturar-hi l'animació i deixar temps perquè l'usuari activi el botó; per aquest motiu cal fer servir alhora stop() (o un mecanisme anàleg dels que veurem en els propers apartats) en el fotograma.

Amb aquestes dues accions es pot controlar també el comportament d'un clip, amb un mandat anàleg al següent:

nom.play()

on nom és el nom del clip.

 

17.2. Parada final

En arribar al darrer fotograma de la darrera escena, el control torna automàticament al primer fotograma de la primera escena. L'execució de l'animació es repeteix contínuament.

Hi ha dues maneres d'evitar l'execució reiterada:

L'animació queda aturada en el primer fotograma gràcies al programa

stop()

El botó conté el programa

on (release){
   play();
}

que engega el procés.

I, finalment, el darrer fotograma conté

stop()

que evita el retorn al primer fotograma.

 

17.3. Salts en el flux de l'animació

Amb l'acció gotoAndPlay() fem saltar l'animació a l'escena i el fotograma indicats, a partir dels quals continua l'execució. La sintaxi és

gotoAndPlay("escena", fotograma)

on escena és el nom de l'escena i fotograma el número del fotograma (o el nom del fotograma entre cometes).

L'acció gotoAndStop() és anàloga, però porta l'animació a l'escena i el fotograma indicats, on queda aturada.

Hi ha, a més, les accions nextScene() i prevScene(), que porten l'animació al primer fotograma de l'escena següent o anterior, respectivament, i hi aturen l'execució, i nextFrame() i lastFrame(), que la porten al fotograma següent o anterior i també hi aturen l'animació.

Hi ha quatre escenes, anomenades inici (on hi ha els tres botons), melodia, acompanyament i conjunt. Cada botó té vinculat un programa com ara el següent:

on (release){
   gotoAndPlay("conjunt",1)
}

I el fotograma final de cada una de les escenes conté el següent programa:

gotoAndPlay("inici",1)

La possible lentitud en la càrrega és deguda al volum de l'animació (a causa del so), i no té res a veure amb l'ús del gotoAndPlay().

 

17.4. Canvi de document

Per a obtenir la presentació d'un document HTML es fa servir la funció getURL():

getURL("adreça","finestra")

Tant l'adreça URL com el nom de la finestra han d'anar entre cometes. Si ometem el nom de la finestra, el document obtingut es presentarà en la finestra on hi havia el document HTML inicial, i l'hi substituirà.

Cada un dels botons és portador d'un programa que obre una pàgina HTML en una finestra diferent de l'actual i que s'anomena nova; el de l'Opció A és:

on (press){
   getURL("flash1704a.htm","nova")
}

 

17.5. Canvi de document a partir d'un text

Un botó o un clip poden contenir un text i tenir associada l'acció getURL().

Però també és possible obtenir canvis de documents directament a partir de textos, sense recórrer a l'ActionScript. Per obtenir aquesta vinculació directa cal crear primer el text i després escriure l'adreça del document de destí a la casella URL del quadre contextual de propietats de text (a Window > Panels > Character).

Exemple
Aquest és l'aspecte del quadre contextual de propietats dels caràcters un cop, havent ja creat un text, hi assignem un hipervincle.

 

17.6. Canvi d'animació

Hi ha una funció, loadMovie() que permet carregar una animació mentre se n'executa una altra. Les diverses animacions així invocades s'organitzen en nivells. El nivell més baix (animació original) és el 0, i els superiors són 1, 2, etc. Les zones d'una animació no ocupades per objectes són transparents, i permeten veure la inferior. La càrrega d'una animació en un nivell comporta la descàrrega de l'animació que hi hagués prèviament en aquell mateix nivell.

El format més usual de loadMovie() és

loadMovie("nom.swf",nivell)

on nivell és un dígit.

Per descarregar una animació sense substituir-la per una altra hi ha la funció

unloadMovie(nivell)

En carregar aquest document HTML s'hi incorpora el document de Flash anomenat flash1706.swf, que consisteix en una imatge i dos botons. El botó de l'esquerra té vinculat el programa següent:

on (release){
   loadMovie("flash1706a.swf",0)
}

El nivell 0 implica la substitució de l'animació anterior, que desapareix completament, per la nova, flash1706a.swf. En aquesta hi ha un altre botó amb un programa anàleg que fa l'operació inversa: desplaça l'animació nova i retorna a l'antiga, flash1706.swf.

El botó de la dreta és diferent; el programa vinculat és

on (release){
   loadMovie("flash1706b.swf",1)
}

Com que el nivell 1 està lliure, s'hi instal·la l'animació flash1706b.swf, i no es produeix cap desplaçament: el nivell 0 continua ocupat per flash1706.swf, que apareix parcialment sota les trasparències de l'animació superior.

El botó de flash1706b.swf també té un funcionament diferent. Conté el programa

unloadMovie(1)

i per tant l'efecte que produeix és la desaparició de flash1706b.swf i que, buit el nivell 1, torni a veure's sencer el nivell 0 que conté l'animació flash1706.swf.