Ubicació de les accions del llenguatge ActionScript  
 
 
  L'objectiu d'aquesta pràctica és conèixer la ubicació de les accions o scripts del llenguatge ActionScript.  
    
 
  L'objecte movieClip  
    
 
  Heu observat que les pel·lícules de Flash utilitzen molt sovint el símbol movieClip. Però a l'hora de fer programes amb l'ActionScript, es pot dir que és quasi obligatori si voleu tenir més control sobre tots els objectes.  
      
  Podeu considerar el símbol movieClip com un objecte amb les seves propietats i mètodes. La diferència principal amb els altres objectes és que aquest es pot crear amb temps de disseny a l'escenari, per tant, és l'únic objecte del Flash que es pot veure gràficament.  
      
  L'aspecte més positiu d'aquest tipus d'objecte és que el podeu considerar un model, i podeu saber sempre totes les propietats i mètodes que té.  
      
  Bé, doncs, ara aneu a la pràctica.  
     
Desenvolupament de la pràctica
 
  
 
» Comenceu creant un arxiu nou amb el nom de Load.fla.
 
  
 
» Ara creeu un símbol movieClip.
 
   
»  Dibuixeu un quadrat a l'escenari, seleccioneu-lo, premeu la tecla F8, escolliu l'opció Clip de pel·lícula i doneu-li el nom de quadrat. Podeu fer el mateix seleccionant-lo i, des del menú principal, escollir Modificar / Convertir en símbolo.  
  
 
 Acabeu de crear un objecte. Us preguntareu si aquest objecte té un nom. La resposta és que sí. Però quin nom té? quadrat? moviClip1? Doncs no. La resposta és instance1, que és el nom que li dóna el Flash per defecte.  
  
 
Per comprovar aquesta afirmació:
 
  
 
» Executeu la pel·lícula i activeu el depurador. Amb aquesta eina, podreu observar l'esquema jeràrquic de la pel·lícula.  
  
 
Observeu que la icona de la pel·lícula principal amb el nom de /_level0/ i el nom de l'objecte movieClip /_level0.instance1/ vol indicar que la instància instance1 es troba a la pel·lícula principal amb el nivell 0.
 
  
 
» Esborreu la instància de l'escenari i torneu a comprovar-ne l'existència amb el depurador.
 
  
 

Us adonareu que la instància no existeix, però sí el símbol movieClip a la biblioteca.

Quina diferència hi ha entre la instància i el símbol movieClip? Podeu considerar el símbol movieClip com un objecte en potència que es farà realitat quan tingui una instància.

És a dir, quan arrossegueu un símbol a l'escenari, esteu creant un objecte movieClip.

 
  
 
» Arrossegueu dues instàncies a l'escenari per crear dos objectes i comproveu amb el depurador que s'han creat dues instàncies dins la pel·lícula principal (_level0).
 
  
 

Els pas següent serà associar una incidència a la instància 1.

 
  
 

» Feu un clic a la instància 1.

 
  
 

» Escolliu onclipEvent del panell Acciones, que teniu a la part inferior de la pantalla. Si el panell Acciones no hi és a la part inferior de la pantalla, podeu activar-lo al menú Ventana / Paneles de desarrollo / Acciones, i activeu, a la part esquerra: Control Clip de Película / onclipEvent. Podeu aconseguir el mateix escollint el signe + que hi ha sobre l'editor d'accions i buscant les mateixes opcions. També podeu fer servir la tecla F9 per obrir directament el panell Acciones. Eviteu repetir aquest comentari a les properes pràctiques, i escriviu només l'acció que ha de fer el clip.

 
  
 
Aquesta acció és el gestor d'incidències de l'objecte movieClip i, per defecte, us sortirà com a primera opció la incidència Load. La seva funció és executar el codi que inserireu entre els claudàtors quan es carregui la instància.
 
  
 

» Introduïu entre els claudàtors la sentència: /_root.instance1._x=1;/

 
  
 

» Executeu la pel·lícula i comproveu que la instància 1 s'ha ubicat al píxel 1 de l'eix X de coordenades de l'escenari.

 
  
 

La sentència /_root.instance1._x=1;/ us indica que, dins la pel·lícula principal, la coordenada X de la instància 1 val 1.

El codi _x és una propietat de la instància 1. Podeu traduir aquesta sentència per: :

 
  
 
Pel·lícula Principal.Objecte 1.Propietat x (ubicació)
 
  
 
Ara modifiqueu altres propietats de la instància 1.
 
  
 
» Afegiu la sentència: /_root.instance1._alpha=50;/ i executeu la pel·lícula.
 
  
 
Observeu com el quadrat té un cert grau de transparència.
 
  
 
Ara, continueu jugant amb les propietats, però des d'un arxiu extern. Com ja s'havia comentat abans, podeu importar el codi font amb l'acció #include.
 
  
 
» Exporteu el codi de la incidència Load a la mateixa carpeta on teniu la pel·lícula principal i doneu-li el nom de progra1.as.
 
  
 
» Esborreu el codi i inseriu, en el seu lloc, l'acció #include "progra1.as"
 
  
 
» Obriu l'arxiu progra1.as i afegiu el codi següent:
 
    
 
 

_root.instance1._rotation= 40;

_root.instance1._x=200;

_root.instance1._y=200;

_root.instance1._xscale=300;

 
    
 
  » Deseu al disc dur l'arxiu progra1.as.  
    
 
  » Executeu de nou la pel·lícula i observeu la modificació de les propietats de les instàncies.  
    
 
  L'acció #include us permetrà modificar i afegir codi sense haver d'obrir l'arxiu SWF del Flash.  
  
  Segur que ara també voldreu aplicar un bucle a les propietats _x i _y per crear el moviment d'aquestes instàncies.  
    
 
  » Inseriu aquest bucle a la incidència Load:  
 

  

 
 
onClipEvent (load) {
for (var a = 0; a<100; a++) {
_root.instance1._x++;}
}

 

 

 

    
 
  » Comproveu el resultat executant la pel·lícula i us adonareu que la instància 1 s'ha mogut de lloc, però no heu pogut veure el moviment. Això ha passat perquè no és en aquesta incidència on s'ha de posar. Aquest és una error comú quan es comença a programar en Flash. La incidència Load solament carrega una vegada el codi font que porta entre claudàtors, que passa, només, quan es carrega per primera vegada el clip de pel·lícula que té associat aquest codi.  
    
 
  Aquesta incidència és idònia per crear variables o assignar valors i propietats als objectes, però no per crear animacions.  
    
 
 
Per poder aconseguir això, heu d'utilitzar una altra incidència, i així podeu passar ja a la pràctica següent.
 
      
 
       
       
r