Control dels clips de pel·lícula  
 
 
  En aquesta pràctica us familiaritzareu en el control dels clips de pel·lícula i l'us de variables.  
     
  Els objectius d'aquesta pràctica són:  
     
 

• Familiaritzar-se amb el control de clips de pel·lícula imbrincats.

 
     
 

• Familiaritzar-se amb l'us de las variables.

 
     
     
 Desenvolupament de la pràctica    
   
Abans de començar aquesta pràctica cal que recordeu la importància de posar-li nom d'instància als botons i clips de pel·lícula.Totes les instàncies de la pel·lícula apareixen en el panell |Insertar ruta de destino.  
   
  Panell /Insertar una ruta de destino/    
     
  La ruta de destí són la referència d'un objecte en la pel·lícula per que sigui localitzable per les ActionScript.  
     
  Perquè una acció funcioni correctament ha de tenir una ruta de destí. Les rutes de destí no sempre són les mateixes ja que depenen de la línia de temps on està l'objecte subjecte de l'acció.  
     
  Un clip no sempre està en la línia de temps principal, de vegades està imbrincat dins d'altres.  
     
  Quan un clip està dins d'un altre, hem de concretar quin és el cami des de la línia de temps principal per arribar a l'objecte. Encertar la ruta de destí té una importància capdal . El procès per establir les rutes de destí és fàcil, però s'ha de tenir clar des del primer moment.  
     
  Per exemple és com donar instruccions a un robot: ves al barret i agafa el conill del seu interior que vull que desaparegui.  
     
  Perquè el lector entengui la vostra ordre haurieu passar-la al llenguatge dels script i més o menys quedaria així  
     
  Dins del barret hi ha un conill |_root.barret_mc.conill_mc| vull que desaparegui |._visible = 0;|. La paraula |_root| fa referència a la línia de temps principal de la pel·lícula.  
     
  Si analitzeu el escript comprovareu que la primera part assenyala la ruta de destí per trobar el conill i la segona part defineix l'acció.  
     
  Per facilitar aquest proces d'enrutament del clips imbrincats, el panell d'accions té l'opció |Insertar la ruta de destino|.  
     
 

Ara fareu sortir el conill de l'exemple del barret. El barret i el conill ja estan creats momés haureu d'escriure els script necessaris al lloc corresponent.

 
     
   Aneu al menú |Archivo|Abrir| i busqueu a la carpeta mat_m3, que està dins de la carpeta d105m3 i seleccioneu l'arxiu barret.FLA.  
     
  Quan es treballa amb clips imbricats és important saber en quin escenari esteu treballant i quin objecte és el que teniu sel·leccionat.  
     
  El progama en facilita aquesta informació d'una manera molt entenedora. Per damunt de l'escenari està la barra que ens indica en tot moment en quin escenari esteu traballant i la fitxa que hi ha a la part inferior del panell accions mostra quin objecte teniu sel·leccionat.  
     
  En l'exemple de la imatge següent podeu veure com la barra superior informa que esteu en l'escenari de la línia de temps de la pel·lícula i la fitxa inferior que teniu sel·leccionat el clip barret .El nom que apareix en la fitxa és el que li haveu posat al clip o botó quan l'heu creat. Quan li assigneu un nom d'instància el nom del clip canvia i apareix el nom d'instància.  
     
 
 
     
   Aneu a la capa barret i seleccioneu el clip de pel·lícula barret que hi ha dins l'escenari, obriu el panell |Propiedades i poseu-li com a nom d'instància barret_mc.  
     
   Feu doble clic damunt de la instància barret_mc per entrar dins del seu escenari, seleccioneu de la capa clip_conill el clip conill, aneu al panell |Propiedades| i poseu-li com a nom d'instància conill_mc.  
     
 
 
   
   Sortiu de l'escenari de la instància barret_mc i torneu a l'escenari de la pel·lícula. Ho podeu fer prement la fletxa que hi ha a la barra superior de l'escenari o fent un doble clic damunt de l'escenari.  
     
   Aneu a la capa botó, seleccioneu el botó que hi ha dins l'escenari, obriu el panell |Propiedades i poseu-li com a nom d'instància boto1_btn.   
     
     
  Perquè la instància conill_mc aparegui, abans l'haureu de fer desaparèixer. El següent pas serà fer que el conill resti invisible quan es carregui la pel·lícula. Per escriure aquesta primera part del script fareu servir el panell |Insertar la ruta de destino|.  
     
  Seleccioneu el primer fotograma de la capa accions, aneu al panell d'accions i premeu la xinxeta, que està a la part inferior, per fixar el script i obriu l'opció |Insertar la ruta de destino|.  
     
 
 
     
  Quan tingueu obert el panell |Insertar la ruta de destino|, observareu que a la part superior hi ha el quadre de text d'on surt la ruta de destí elegida, a la zona del mig un navegador on apareixen tots el objectes que teniu dins l'escenari tinguin nom d'instància o no i a la part inferior les opcions de ruta |Relativo| o |Absoluto|.  
     
  Les rutes absolutes utilitzen l'expressió |_root| per assenyalar el nivell de pel·lícula que està més a dalt.Fan referència sempre a la línia de temps principal, l'arrel (root en anglès).  
     
  Les rutes relatives utilitzen l'expressió |this| per assenyalar l'objecte relacionat  
     
   Busqueu en el navegador de la part central, la instància de clip conill_mc, a la que anirà dirigida l'acció i feu un doble clic. Observeu que la ruta asignada apareix en el quadre de text superior, premeu el botó |Aceptar| i pasarà al panell d'accions.  
     
  Quan s'obre el panell observareu que l'opció assenyalada per defecte és |Relativo|,  
     
  Escriviu un punt a continuació i s'obrirà el panell de propietats, sel·leccioneu | _visible|, afegiu-li el signe igual seguit d'un zero i acabeu la línia amb un punt i coma.  
     
   
                         this.barret_mc.conill_mc._visible = 0;  
     
     
  Desprès de convertir en invisible la instància conill_mc haureu de crear una funció perquè quan activeu el botó el conill aparegui.  
     
 

L'estructura del següent script us ha de ser prou coneguda perquè ja l'haveu fet servir per anteriors pràctiques

 
     
   Escriviu directament aquest script:  
     
   

boto1_btn.onPress = function() {
_root.barret_mc.conill_mc._visible =0;
};

 
     
     
  Si feu servir el panell |Insertar la ruta de destino| per aquest tros de script, heu de seleccionar primer la instància conill_mc, desprès l'opció |Absoluto| i per acabar prèmer |Aceptar|.  
     
   Publiqueu l'arxiu i comproveu que funciona com la pel·lícula de l'exemple.  
     
 
     
   Guardeu la pel·lícula amb el nom de barret01.FLA.  
     
  En la pràctica del barret heu escrit el script que genera l'esdeveniment de ratolí en el primer fotograma de la capa accions. Com que el botó està dins de la mateixa línia de temps no ha necessitat que li assenyalèssiu cap ruta de destí.  
     
 

En el cas que el botó estigui inserit en la linia de temps d'un clip imbrincat, hauríeu de marcar la ruta de destí de la mateixa manera que ho haveu fet per l'acció.

 
     
  El script de l'exemple mostra la ruta d'un botó que està dins de la instància de clip barret_mc.  
     
   

this.barret_mc.boto1_btn.onPress = function() {
_root.barret_mc.conill_mc._visible =0;
};

 
     
     
  Fins ara heu estat inserint els scripts en un sols fotograma de la línia de temps. Com ja s'ha comentat al principi d'aquest mòdul, concentrar tots els scripts en un sol lloc és una bona manera de treballar, però no l'única.  
     
  Per tal de veure les diferències que significa programar directament damunt de l'objecte, repetirem la pràctica anterior amb noves regles.  
     
  Insertar un script en un clip de pel·lícula  
     
   Torneu a obrir l'arxiu barret.FLA. Si l'haveu guardat durant la pràctica anterior i ara conté algun script, esborreu-lo.  
     
   Seguiu els passos que ja coneixeu de la pràctica anterior, per posar nom d'instància als clips de pel·lícula i al botó.  
     
  El primer que heu de fer és programar la incidència de clip perquè la instància conill_mc no estigui visible quan es carrega la pel·licula.  
     
   Feu doble clic al clip en la intància barret_mc per entrar dins del seu escenari i seleccioneu la intància de clip conill_mc que està en la capa clip_conill.  
     
   Aneu al panell accions, comproveu en la fitxa inferior que teniu seleccionada la instància de clip conill_mc i feu clic a la xinxeta per fixar el script.  
     
  Inseriu el següent script navegant pel panell |Añadir un nuevo elemento el script| o escrivint-lo directement.  
     
   

onClipEvent (load) {
this._visible = 0;
}

 
     
     
  Insertar un script en un botó  
     
  El segon pas que heu de donar és programar el botó amb la incidència de ratoli perquè el conill aparegui.  
     
   Primer de tot desfixeu, amb la xinxeta del panell accions, el script de la instància conill_mc i després torneu a l'escenari de la línia de temps de la pel·lícula, fent un doble clic fora de l'escenari.  
     
   Sel·leccioneu el boto1 que està en la capa botó, comproveu en la fitxa inferior que teniu sel·leccionat boto1_btn i feu clic a la xinxeta per fixar el script.  
     
  Inseriu el següent script navegant pel panell |Añadir un nuevo elemento el script| o escrivint-lo directament.  
     
   

on (press) {
this.barret_mc.conill_mc._visible = 100;
}

 
     
     
   Publiqueu l'arxiu i comproveu que funciona com la pel·lícula de l'exemple.   
     
  Treball amb Variables   
     
  Les variables són un element força utilitzat en els llenguatges de programació.  
     
  És freqüent que les ActionScript utilitzin variables dins dels seus scripts.  
     
  La variable és un contenidor a la qual el programador li assigna un nom i un contingutr. Al llarg de la pel·lícula podeu recuperar el valor o contingut i si cal canviar-los.  
     
  Variables  
     
  Tipus de variables  
     
  Les variables es poden dividir en distintes categories depenent del tipus de valor que aquestes continguin. Les més corrents són:  
     
  Numèric. El valor que conté s'expressa amb números que poden anar del 0 fins al 999,999.  
     
  Un exemple seria: edad_alumnes = 5;  
   
  Cadena. El valor que conté s'expressa amb lletres, números o amb lletres i números alhora. El valor d'una cadena sempre va escrit entre cometes, és un valor literal i per tant no es pot interpretar. Quan recuperem aquesta variable ens tornarà 5 anys.  
     
  Un exemple seria: edad_alumnes = " 5 anys ";  
     
  Boleà. El valor que conté s'expressa en veritat |true| o en fals |false|. El nombre zero és l'equivalent numèric de |false| i qualsevol altre nombre que no sigui zero pot ser l'equivalent numèric de |true|.  
     
  Un exemple seria: edad_alumnes = true;  
     
  Una variable pot contenir un valor literal com ara |el_meu_nom = "Joan";|. A l'estar el valor entre cometes el l'ector d'ActionScript l'interpreta literalment com una cadena de lletres.  
     
  També pot contenir com valor una expressio com ara |el_meu_nom = j;|, en aquest cas al no estar el valor entre cometes el lector d'ActionScript l'interpreta que aquest valor és una expressió. Perquè aquesta variable funcioni hauria d'haver un altre que donés valor a aquesta expressió, per exemple |j = "Joan"|.  
     
  En ActionScript hi ha altres tipus de variables com poden ser els objectes i les matrius.  
     
  Creació d'una variable  
     
  Les variables es creen posant primer el nom. Després del nom heu d'escriure el signe igual |=|, a continuació el valor que vulgueu assignar a la variable i tancar-la amb un punt i coma |;|..  
     
 

• El nom pot ser el que vosaltres elegiu, però hi ha algunes exepcions com ara que no pot començar per nombres, utilitzar noms destinats a les ActionScript ni tampoc tenir espais buits.

 
     
     
  Les variables es poden inserir dins d'un fotograma de la línia de temps, dins d'un clip de pel·lícula o dins d'un botó. El seu valor no es por usar fins que no es produeix l'evento que desencadena la seva activació.  
     
 
En el moment que el capçal lector del Flash arriba a la variable s'activa el valor d'aquesta. Així doncs:
 
 

 

 
 

• Si la variable està en la línia de temps adquirirà el seu valor quan el capçal lector arribi al fotograma on està inserida.

 
     
 

• Si la variable està inserida en una instància de clip de pel·lícula adquirirà el seu valor quan es produeixi l'evento de clip.

 
     
 

• Sí la variable està inserida en un botó adquirirà el seu valor quan es produeixi l'evento de ratolí.

 
     
  Les opcions |Texto dinámico| i |Texto de entrada| d'un camp de text poden estar vinculades a una variable i així el camp es pot omplir amb el contingut de la variable.  
     
  El valor d'aquesta variable és el l'usuari assigna prèviament.  
     
  El nom de les variables s'introdueix a través del panell |Propiedades|, Dins d'aquest panell que apareix automàticament quan es selecciona l'eina |Texto| hi ha un requadre per posar nom a les variables.  
     
  Assenyalar la ruta d'una variable  
     
  Les variables poden estar inserides en qualsevol línia de temps, ja sigui la de la pel·lícula o la d'una instància de clip. En conseqüència, de la mateixa manera que es defineix la ruta d'una instància de clip quan es vol exercir una determinada acció sobre aquesta, també s'ha d'establir una ruta per assenyalar la posició que ocupa la variable dins d'una determinada instància. Recordeu que els clips poden estar els uns dins dels altres.  
     
  La manera d'escriure la ruta d'una variable és igual a la que ja està explicada en la pràctica anterior dins de l'apartat |Insertar ruta de destino| però afegint-li al final de la ruta el nom de la variable.  
     
  Tot seguit, es mostren uns exemples de com s'hauria d'escriure la ruta d'una variable depenent de la línia de temps on estigui situada.  
     
  Observareu que en l'exemple proposat hi ha tres instàncies de clip, vermell, blau i groc. La instància de clip groc està dins d'una altra anomenada blau i al mateix temps aquesta està dins d'una altra instància anomenada vermell.  
      
  També hi podeu veure un botó. En aquest botó hi ha inserit l'script que conté la ruta, el nom i el valor de la variable. Fixeu-vos que en cada cas el botó canvia de posició i en conseqüència la ruta de la variable.  
     
  En l'exemple de la imatge següent es fa servir l'opció absoluta | _root| per fer arribar el valor de la variable nom_variable, que està dins de la línia de temps de la instància de clip groc, des d'un botó que està fora de les instàncies de clip.  
     
  La ruta absoluta | _root| té l'avantatge que es pot utilitzar dins de qualsevol línia de temps, ja sigui de la pel·lícula o la d'una instància de clip.  
     
 
     
  En l'exemple de la imatge següent es fa servir l'opció relativa per fer arribar el valor de la variable nom_variable que hi ha dins de la línia de temps de la instància de clip groc. Com que en aquest cas el botó està dins de la instància de clip vermell, n'hi ha prou amb assenyalar la ruta completa fins a la variable que està en la instància groc.  
     
 
     
  En l'exemple de la imatge següent es fa servir l'opció absoluta /_root/ per fer arribar el valor de la variable nom_variable, que està fora de les instàncies de clip, des d'un botó que està dins de la instància groc.  
     
 
     
 

• Observeu que en aquest cas tornem a fer servir la ruta absoluta |_root| per sortir de la línia de temps d'una instància de clip i anar a la línia de temps principal de la pel·lícula.

 
     
  En l'exemple de la imatge següent es fa servir l'opció | _parent| per fer arribar el valor de la variable nom_variable des d'un botó que està en la instància de clip groc a una instància de nivell superior vermell que conté el primer.  
     
  La propietat | _parent| indica un nivell superior d'instància. Observareu que en el cas de l'exemple es fa servir la propietat dos cops per pujar dos nivells en una línia jeràrquica.  
     
 
      
  Abans d'acabar aquesta pràctica fareu que salti el conill del barret. La magnitud del salt la decidirà l'usuari mitjançant un quadre d'entrada de text . Usareu una variable per anar modificant la posició del conill dins de l'escenari.  
     
  Per estalviar-vos feina, aprofitareu l'arxiu barret1.FLA que heu creat i guardat en la primera part d'aquesta pràctica.  
     
   Aneu al menú |Archivo|Abrir| i busqueu l'arxiu barret01.FLA on el tingueu guardat.  
     
  Creeu una nova capa per sota de la capa accions i poseu-li de nom variables.  
     
  Sel·leccioneu l'eina |texto|, aneu al panell |Propiedades|, dins la finestra |Tipo de texto| elegiu |Introducción de texto|.  
     
   Dins la capa variables, creeu un quadre d'entrada de text al costat del botó.  
     
   Aneu al panell |Propiedades|, escriviu en el requadre |Var:| el nom de la variable salta i marqueu l'opció |Mostrar borde alrededor del texto| .  
     
  Acabeu de crear una variable que té per nom salta, el valor d'aquesta variable serà el que s'introdueixi en el quadre d'entrada de text.  
     
  Despés de crear la variable salta, fareu que el seu valor modifiqui la posició de la instància conill_mc utilitzant la propietat |_y|. La propìetat |_y| assenyala les coordenades |Y| dins de l'escenari.  
     
  Seleccioneu el primer fotograma de la capa accions, aneu al panell d'accions i apareixerà el script que havieu escrit anteriormant, premeu la xinxeta per fixar-lo.  
     
  Escriviu sota la última acció |_root.barret_mc.conill_mc._y = -salta;|.  
     
  Comproveu que el script queda com el que hi ha sota aquestes línies i després proveu la pel·lícula.  
     
   

this.barret_mc.conill_mc._visible = 0 ; boto1_btn.onPress = function() {
_root.barret_mc.conill_mc._visible =0;
_root.barret_mc.conill_mc._y = -salta;
};

 
     
     
  L'última part d'aquest script és similar a l'anterior. La diferència està en que el valor de la propietat |_y| no és fixa sino que depèn del valor de la variable salta.  
     
  Observeu que la variable salta té davant el signe menys |-|, això és degut a que els valors positius per l'eix |Y| d'un clip es troben per sota del centre. En consequència si es vol que el conill salti a la propietat |_y| li heu de donar un valor negatiu.