Tractament de so amb ActionScript  
 
 
 
 

En aquesta pràctica, aplicareu algunes de les possibilitats del so amb ActionScript.

L'estudi d'aquest tema dóna per moltes més pràctiques, ja que l'objecte sound és molt flexible i té moltes possibilitats.

Els objectius d'aquests pràctica són:

  • Conèixer les possibilitats del tractament de so amb ActionScript.
  • Creació d'objectes de so.
  • Associació de sons per mitjà de vincles.
  • Aplicació de mètodes de l'objecte de so.
 
     
      
Desenvolupament de la pràctica  
   
La vinculació d'objectes sound de Flash 5 amb arxius de so és una de les tècniques que més s'utilitza per associar un únic so a cada objecte que es troba en la línia actual de temps.  
      
Per exemple, si voleu associar un so de la biblioteca a un objecte de so, primer heu de crear un nom de vinculació (linkage name). Això es pot comparar amb el nom d'instància dels clips de pel·lícula.
 
      
 
 
 
 

» Recupereu l'arxiu so1.zip. Amb aquest arxiu, trobareu l'arxiu de so amb una interfície per simular una cadena musical.

» Seleccioneu l'arxiu de so anomenat FIREEXT.WAV de la biblioteca i després, amb el botó dret, seleccioneu l'opció Vinculación. Us sortira el panell de propietats de vinculació. Heu de seleccionar l'opció Exportar para ActionScript.

» Poseu un nom únic en el camp identificador (que ara estarà actiu). Podeu posar el nom de so1.

 
      
 

Amb aquest so, ja podeu fer l'associació amb un objecte sound que creareu des de l'ActionScript utilitzant el codi:

elmeuso=new Sound(desti)

La variable elmeuso correspon al nom del vostre objecte de so, i seguirà les mateixes regles que afecten totes les variables de l'ActionScript. Desti és la ruta d'accés a la línia de temps d'on es crearà l'objecte de so. Si no especifiqueu aquest paràmetre, Flash crearà l'objecte en la línia de temps actual.

» Inseriu al fotograma clau de la pel·lícula principal el codi següent:

 
        
 

_root.altaveu1.gotoAndStop(1);
_root.altaveu2.gotoAndStop(1);
_root.altaveu3.gotoAndStop(1);
_root.altaveu4.gotoAndStop(1);
_root.barra1.gotoAndStop(1);
_root.barra2.gotoAndStop(1);
_root.elmeuso = new Sound();
_root.elmeuso.attachSound("so1");

 
      
  El primer que es fa amb aquest codi és procurar que els clips de pel·lícula altaveu1, altaveu2... i les barres de leds (noms d'instància barra1 i barra2) no reprodueixin la seva animació.  
   

Amb les dues últimes línies de codi, es crea un objecte de so nou, com s'ha explicat al començament de la pràctica.

» Ara doteu de codi al botó oval-play, on li assignareu les accions següents:

 

on (release) {
_root.elmeuso.start();
_root.altaveu1.gotoAndPlay(1);
_root.altaveu2.gotoAndPlay(1);
_root.altaveu3.gotoAndPlay(1);
_root.altaveu4.gotoAndPlay(1);
_root.barra1.gotoAndPlay(1);
_root.barra2.gotoAndPlay(1);
}

 

Com podeu observar, amb l'acció _root.elmeuso.start();, s'inicia la música, i amb les accions següents, es reinicien les animacions dels clips de pel·lícula que s'havien aturat en el fotograma clau de la pel·lícula principal.

» Feu el mateix amb el botó oval-stop, on les accions serien aturar els clips, com heu fet anteriorment, i assignar el mètode stop() a l'objecte de so.

 
      
 

on (release) {
_root.elmeuso.stop();
_root.altaveu1.gotoAndStop(1);
_root.altaveu2.gotoAndStop(1);
_root.altaveu3.gotoAndStop(1);
_root.altaveu4.gotoAndStop(1);
_root.barra1.gotoAndStop(1);
_root.barra2.gotoAndStop(1);
}

 
      
 

El mètode start() té més opcions.

En l'exemple següent, _root.elmeuso.start(1.7,3);, el primer paràmetre (1.7) correspon al nombre de segons a partir dels quals es vol començar a reproduir el so, i el segon paràmetre (3), indica la quantitat de vegades que es vol reproduir aquest so. El valor màxim de repeticions que es pot executar és de 214748. En el cas que no s'especifiqui aquest paràmetre, la repetició seria permanent.

 

 
 

» Ara afegiu funcions noves a la vostra cadena musical, com per exemple, el volum.

» Afegiu al fotograma principal aquestes línies de codi noves per inicialitzar el volum que determineu en 10 (el volum ha d'estar entre els valors de 0 i 100). Així mateix, apliqueu ja el mètode nou setVolume(). Les dues línies per afegir són:

 
       
 

 

volum=10;
_root.elmeuso.setVolume(_root.volum);

Ara ja podeu programar el botó que correspon al volum amb el següent codi:

on (release) {
_root.elmeuso.setVolume(_root.volum += 5);
}

 

 
 

 

Amb aquest codi, cada vegada que es premi el botó del volum, augmentarà el nivell de volum del so en cinc unitats. Aprofitant la pràctica 4 del mòdul 5, on sortia l'exercici del compàs, podeu fer que el botó de volum vagi augmentat mentre no s'alliberi el botó, i podeu fer un altre botó que faci a l'inrevés.

Com podeu veure, a la interfície hi ha espai suficient per incloure botons nous amb funcions, i espai per dotar de codi els botons que hi ha creats i que no en tenen.

A títol orientatiu, es descriu breument alguns mètodes que podeu aplicar a l'objecte sound.

_root.elmeuso.setPan(10); especifica el balanç esquerra-dreta entre els valors -100 i 100.

_root.elmeuso.getvolum(); us retorna el nombre d'unitats que té el volum de so.

Podeu fer una ullada al diccionari o també a la referència d'ActionScript per veure altres mètodes i exemples més avançats que, com s'ha dit al principi, ocuparia més d'un mòdul.

Esperem que, havent vist aquestes possibilitats del tractament del so amb el Flash, us animeu i feu aplicacions noves que, de ben segur, seran espectaculars.

 
 

  

 
  Deseu l'arxiu amb les modificacions fetes.