Incidència, instrucció Eventos

 
 
 
  Definir eventos com a una instrucció que determina quan s'executa l'acció o funció definida.

Podríem parlar de quatre tipus d'eventos:

Eventos de ratolí
 
Eventos de fotograma
 
Eventos de teclat
 
Eventos de clip de pel·lícula

 
     
 Eventos o Incidències de ratolí
   

Aquestes vindrien donades quan l'usuari interactua sobre una instància de botó de la pel.licula.Els script que desencadenen aquests eventos podent estar inserits en el mateix botó o en un fotograma de la línia de temps, com hem vist en l'anterior pràctica.

     
  Hi ha diverses formes de desencadenar aquestes accions de botons:  
     
  on(press). L'evento press es produeix quan es fa clic al botó del ratolí damunt d'un botó de pel·lícula.  
 
   
     
  on(release).L'evento release es produeix quan el cursor del ratolí fa clic i es deixa anar damunt del botó de pel·lícula.  
     
   
     
  on(releaseOutside). L'evento releaseOutside es produeix quan feu clic i es deixa anar el botó del ratolí lluny de la pel·lícula.  
     
   
     
  on(rollOver). L'evento rollOver es produeix quan es passa el cursor del ratolí sobre un botó de pel·lícula sense necessitat de fer clic.  
     
   
     
  on(rollOut). L'evento rollOut es produeix quan el cursor es desplaça fora d'un botó.  
     
   
     
  on(dragOver). L'evento dragOver es produeix mentre es fa clic amb el botó del ratolí i després s'arrossega aquest sobre el botó de pel·lícula, mantenint polsat el botó del ratolí i es torna a situar sobre el botó de pel·lícula.  
   
   
     
on(dragOut). L'evento dragOut es produeix mentre es fa clic amb el botó del ratolí i després s'arrossega aquest cap a fora del botó de pel·lícula, mantenint polsat el botó del ratolí.  
   
   
     
Les incidències més utilitzades són: on(press) i on(release)  
   
  Recordeu de la pràctica anterior que per inserir una d'aquestes incidències en un botó, només heu d'escriure directament en el panell d'accions |on|, obrir parèntesis |( )| i apareixerà automàticament una finestra emergent amb totes les possibilitats.  
     
   
     
  Incidències del teclat  
     
Les instruccions d'aquesta insidència es produeixen quan es fa clic sobre qualsevol tecla.  
   
 
     
  Per inserir una incidència de teclat heu de seguir els matexos passos que per inserir una incidència de ratolí.  
     
     
   Incidències de fotograma  
     
  Aquestes són conegudes com a accions de fotograma que es produeixen en la línia de temps.  
     
 Incidències de clip de pel·lícula  
   
Els Eventos de pel·lícula formen part de les instàncies de clips de pel·lícula i només poden anar units a aquests. Igual que els Eventos de ratolí, aquests es produeixen quan es desencadena el fet en el clip de pel·lícula.
 
Així, per exemple, el fet que un clip es carregui per primer cop |OnClipEvent (load)| fa que s'executi una acció determinada.
 
   
  Alguns dels |Eventos| que van units a instàncies de clips són els següents:  
   
  OnClipEvent (load) El fet |load| ve donat amb la primera aparició de la instància de clip pel·lícula dins de la pel·lícula.  
     
 

• El clip de pel·lícula de l'exemple és el quadrat blau de l'esquerra. Quan es carrega per primer cop s'executa la propietat |_alfa=50|.
El quadrat de la dreta no té unit cap |OnClipEvent|, per aquest motiu es mostra sense cap modificació.

 
     
   
     
  OnClipEvent (enterFrame). El fet |enterFrame| ve donat en el moment que la línia del temps del clip de pel·lícula accedeix a un nou fotograma. Si el clip de pel·lícula només té un fotograma, aquest s'anirà reproduint indefinidament.

 
     
 

• El clip de pel·lícula de l'exemple és un quadrat sobre el qual s'executa la propietat |_width++| . El clip augmenta el seu llarg |_width| constantment, ja que el clip només té un fotograma.
 
En el cas d'aquest exemple, per evitar que el clip sobrepassés les dimensions de la pel·lícula, l'script fa que quan la llargada és igual a 300 el clip torni a la seva mesura original.
 

 
 
 
     
  OnClipEvent (unload). El fet |unload| ve donat en el moment que la línia de temps arriba al primer fotograma en què la instància de clip de pel·lícula ja no li té presència.  
     
  OnClipEvent (mouseDown). El fet |mouseDown | ve donat quan es fa clic amb el botó esquerra del ratolí damunt de qualsevol part de la pel·lícula, mentre el clip estigui present. Relacionat amb una variable permet comptar els clics que es fan damunt d'una pel·lícula.  
     
 

• El clip de pel·lícula de l'exemple és un quadrat sobre el qual s'executa la propietat |_width++|. El clip augmenta el seu llarg |_width| cada cop que s'efectua un clic sobre l'espai de la pel·lícula.

 
     
 
 
     
  OnClipEvent (mouseUp). El fet |mouseUp| ve donat cada cop que es deixa anar el botó dret del ratolí damunt de qualsevol part de la pel·lícula. Relacionat amb una variable permet contar els cops que es deixa anar el ratolí damunt d'una pel·lícula.  
     
 

• El clip de pel·lícula de l'exemple és un quadrat sobre el qual s'executa la propietat |_width++|. El clip augmenta el seu llarg |_width| cada cop que es deixà anar el botó del ratolí sobre l'espai de la pel·lícula.

 
     
 
 
     
  OnClipEvent (mouseMove). El fet |mouseMove| ve donat cada cop que el ratolí es mou un píxel per damunt de l'escenari de la pel·lícula, sempre que el clip estigui present.  
     
 

• El clip de pel·lícula de l'exemple és un quadrat sobre el qual s'executa la propietat |_width++| . El clip augmenta el seu llarg |_width| cada cop que el ratolí es desplaça un píxel per l'escenar de la pel·lícula.

 
     
 
 
     
  OnClipEvent (KeyDown). El fet |KeyDown| ve donat quan es prem qualsevol tecla mentre el clip de pel·lícula està present.  
     
 

• El clip de pel·lícula de l'exemple és un quadrat sobre el qual s'executa la propietat |_width++| . El clip augmenta el seu llarg |_width| cada cop que es prem una tecla.

 
     
 
 
     
 

Per activar l'exemple feu clic damunt de la pel·lícula

 
   
  OnClipEvent (KeyUp). El fet |KeyUp|| ve donat quan es deixa de prémer qualsevol tecla mentre el clip de pel·lícula està present.  
 

 

 
 

• El clip de pel·lícula de l'exemple és un quadrat sobre el qual s'executa la propietat |_width++| . El clip augmenta el seu llarg |_width| cada cop que es deixa de prémer una tecla.

 
     
 
 
     
 
Per activar l'exemple feu clic damunt de la pel·lícula
 
     
  OnClipEvent (Data). El fet |Data| ve donat quan el clip de pel·lícula rep dades externes a través de les accions |loadVariables| i |oadMov|.  
     
  Desenvolupament de la pràctica  
   
Recordeu que en la pràctica núm.1 heu creat una incidència de ratolí per controlar la línia de temps.  
   
En aquesta pràctica treballarem amb una incidència de clip per donar moviment a una instància sense necesitar crear efectes d'interpolació de moviment.  
   
Per crear la primera animació farem servir una incidència que actua cada cop que entra un fotograma |onEnterFrame| això fa que el seu efecte sigui constant.  
   
 Aneu al menú |Archivo|Abri| i busqueu a la carpeta mat_m3, que està dins de la carpeta d105m3 l'arxiu moli.FLA  
   
El primer que fareu serà posar nom d'instància als dos clips de pel·lícula que hi ha dins l'escenari.  
   
Sel·leccioneu el clip de pel·lícula que hi ha dins l'escenari de la capa moli1 i un cop seleccionat en el panell de propietats poseu-li com a nom d'instància moli1_mc.  
   
Sel·leccioneu el clip de pel·lícula que hi ha dins l'escenari de la capa moli2 i un cop sel·leccionat en el panell de propietats poseu-li com a nom d'instància moli2_mc.  
   
Un cop posats els noms d'instància als clips, creareu una funció per la incidència |onEnterFrame|.  
   
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.  
   
 Escriviu directament aquest script:  
 
   

onEnterFrame = function () {
moli1_mc._rotation--;
}

 
     
     
 
Un cop inserit el script proveu la pel·lícula |Ctrl+Intro|, si tot és correcte comprovareu que els clip central dóna voltes en el sentit contrari al de les agulles del rellotge.
 
     
  Per acabar aquesta part de la pràctica inserireu el taç de script que falta perquè el molinet acabi de funcionar.  
     
   Completeu el script ecrivint escrivin |moli2_mc._rotation++;|.  
     
 
  El script definitiu ha de quedar de la següent manera:  
     
   

onEnterFrame = function () {
moli1_mc._rotation--;
moli2_mc._rotation++;
}

 
     
     
   Toneu a provar el seu funcionament.  
     
  Explicació del script  
     
  La incidència |onEnterFrame| entra en funcionament cada cop que es carrega un nou fotograma, si la pel·lícula només té un fotograma l'acció es repeteix indefinidament.  
     
  Aquest script afectarà els dos clips, moli1_mc i moli2_mc.  
     
  L'acció |_rotation| fa que el clip de pel·lícula giri s'obre si mateix. A aquesta acció se li pot asignar un valor de |0 a 180| perquè giri a la dreta o de |0-180| perquè giri a l'esquerra, per exemple |_rotation = -136|.  
     
  Els operadors aritmètics |++| i |--| fan que aumenti o decreixi el valor de l'acció, en aquest cas |_rotation|.  
     
  La segona animació d'aquesta pràctica consistirà en moure un clip de pel·lícula per l'escenari utilitzant una incidència de teclat |keyPress|. El clip és mourà cada cop que es premi una tecla. En aquest cas fareu servir les tecles de fletxa.  
     
   Aneu al menú |Archivo|Abri| i busqueu a la carpeta mat_m3, que està dins de la carpeta d105m3 l'arxiu tecles.FLA    
     
  Sel·leccioneu el clip de pel·lícula que hi ha dins l'escenari de la capa clip_mou i un cop seleccionat en el panell de propietats poseu-li com a nom d'instància mou_mc.    
     
  Amb el clip sel·leccionat aneu al panell d'accions i escriviu directament aquest script:  
     
   

on (keyPress "<Left>") {
this._x--;
}

 
     
     
  Amb aquest tros del script només respon a una tecla, la que apunta a l'esquerra |"<Left>"|.  
     
   Un cop comprovat |Ctrl+Intro| que el clip respon quan premeu la tecla, acabeu de copiar la resta del scrip. Fixeu-vos que l'estructura és la mateixa, només canvia el nom de la tecla i l'operador |++|, |--|.  
     
   

on (keyPress "<Left>") {
this._x--;
}
on (keyPress "<Right>") {
this._x++;
}
on (keyPress "<Down>") {
this._y++;
}
on (keyPress "<up>") {
this._y--;
}

 
     
     
  El resultat de la pràctica ha de ser el mateix que el de la pel·lícula de la imatge .Per poder provar el funcionament de la pel·lícula feu clic damunt seu i aneu prement les tecles de fletxa.  
     
 
     
  Explicació de l'script  
     
  El script comença amb una incidència de ratolí |on (keyPress "<Left>")| que en aquest cas desencadena l'acció quan l'usuari prem tecla de la fletxa esquerra.  
     
  L'operador |this| es refereix a l'objecte en el estan localizades les sentències. En aquest cas fa referència a la instància de clip mou_mc. En el mòdul núm.3 pràctica 4 es parla més extensament d'aquest tema.  
     
 

Les accions |_x| i |_y| fan referència a les cordenades |X| i |Y| dins l'escenari. En la pràctica que ens ocupa, aquestes accions associades als operadors |++|, |--| fan que el clip avanci, retrocedeixi, pugi o baixi. Les accions |_x| i |_y| també poden situar o enviar un objecte dins l'escenari. Per exemple |this._y = 300 ;|

 
     
  L'operador |++| augmenta en 1 el valor de |_y| o |_x| i retorna el resultat.  
     
  L'operador |--| resta 1 el valor de |_y| o |_x| i retorna el resultat.  
     
   Per acabar guardeu aquesta pràctica amb el nom de m3p2.FLA en un lloc que després pugueu recuperar.