In Flash4 il controllo dell'audio per mezzo delle
ActionScript era abbastanza lacunoso. Con la nuova versione però, questa lacuna
è stata colmata. Tramite l'oggetto Sound
infatti, è possibile gestire diversi aspetti di un file sonoro.
I metodi per l'oggetto sono:
attachSound
Associa il suono specificato nell'argomento;getPan
Restituisce il valore della chiamatasetPan
precedente;getTransform
Restituisce il valore della chiamatasetTransform
precedente;getVolume
Restituisce il valore della chiamatasetVolume
precedente;setPan
Imposta il bilanciamento destra/sinistra dell'audio;setTransform
Imposta la trasformazione dell'audio;setVolume
Imposta il livello del volume dell'audio;start
Avvia la riproduzione di un suono dall'inizio o, se indicato, a partire dal punto impostato nell'argomento;stop
Arresta il suono specificato o tutti i suoni in corso di riproduzione.
Creazione dell'oggetto
Per poter utilizzare i vari metodi a disposizione, l'oggetto Sound
deve essere creato assegnando il file sonoro desiderato. Per fare questo, vi
sono due modi: il primo è quello di inserire il file sonoro all'interno di un movieclip e specificare quest'ultimo come argomento dell'azione:
loop = new Sound(nomeMovieClip);
oppure è possibile utilizzando il metodo attachSound
:
loop = new Sound();
loop.attachSound("nomelinkage");
In qualsiasi caso, la variabile oggetto loop
è pronta per essere associata ai metodi sopra descritti.
nomelinkage
deriva dalle Proprietà di concatenamento delle librerie. I vari elementi
della nostra libreria possono essere utilizzati anche da filmati esterni a
quello principale. Per poter disporre di questa opzione per i file sonori è
necessario:
1) selezionare il file sonoro desiderato, cliccare con il pulsante destro del
mouse e selezionare la voce Linkage:
2) dalla finestra Proprietà di concatenamento (Symbol Linkage Properties) selezionare la voce Export this symbol ed immettere un nome nel campo Identifier:
In questo modo, il file sonoro viene considerato come condiviso e può essere utilizzato da filmati esterni.
Al posto di nomelinkage quindi, è necessario digitare il nome inserito nella casella Identifier.
start e stop
Per avviare ed interrompere la riproduzione di un file sonoro.
//Creo l'oggetto
loop = new Sound(suono);
//Inizia la riproduzione
loop.start();
//Si interrompe la riproduzione
loop.stop();
Il metodo start
ha la particolarità di poter impostare la
possibilità di riprodurre il file in un punto specifico e di impostarne il
numero di loop.
Il file sonoro verrà riprodotto dal 15° secondo in poi, per un ciclo di 100 volte.
loop.start(15, 100);
setPan e getPan
Per mezzo di questi due metodi è possibile impostare o conoscere il bilanciamento dell'audio. Il valore assegnato deve essere compreso tra -100 e 100, dove -100 corrisponde al canale sinistro, mentre 100 a quello destro.
//Creo l'oggetto
loop = new Sound(suono);
//Imposto l'audio nella cassa sinistra
loop.setPan(-100);
//Imposto l'audio nella cassa destra
loop.setPan(100);
//Imposto l'audio in modo bilanciato
loop.setPan(0);
getPan
invece, come avrete capito, restituisce il valore, compreso tra -100 e 100, dell'ultima chiamata di setPan
.
setVolume e getVolume
Il volume invece, necessita di un valore compreso tra 0 e 100, dove 0 corrisponde al silenzio totale, mentre a 100 il volume di default del sistema.
//Creo l'oggetto
loop = new Sound(suono);
//Silenzio
loop.setVolume(0);
//Troppo rumore ;-)
loop.setVolume(100);
//Volume adeguato
loop.setVolume(50);
getVolume
restituisce il valore, compreso tra 0 e 100, dell'ultima chiamata di setVolume
.
setTransform e getTransform
Come per l'oggetto Color
, anche per Sound
è possibile impostare una configurazione personalizzata della riproduzione di
un file sonoro.
Ecco cosa è possibile gestire:
- ll Percentuale che indica il quantitativo di input sinistro da
riprodurre nell'altoparlante sinistro (da -100 a 100); - lr Percentuale che indica il quantitativo di input destro da riprodurre nell'altoparlante sinistro (da -100 a 100);
- rr Percentuale che indica il quantitativo di input destro da riprodurre nell'altoparlante destro (da -100 a 100);
- rl Percentuale che indica il quantitativo di input sinistro da riprodurre nell'altoparlante destro (da -100 a 100).
Ecco come appaiono le riproduzioni stereo/mono conoscendo i parametri precedenti:
Stereo
ll = 100
lr = 0
rr = 100
rl = 0
Mono
ll = 100
lr = 100
rr = 0
rl = 0
In questo modo:
//Creo l'oggetto personalizzato
suono = { ll:'50',lr:'50',rr:'50',rl:'50' }
//Assegno la trasformazione al loop
loop.setTransform(suono);
la riproduzione dell'audio avviene in modalità mono anche se il file sonoro è stereo.
getTransform
invece, restituisce il valore dei parametri
dell'ultima chiamata di setTransform
.