Aujourd'hui, nous allons aborder l'utilisation de sons dans flash.
Nous utiliserons des exemples concrets comme une barre de volume, répartition
de canal (gauche ou droite) ainsi que les rudiements pour lire et stopper
la lecture des sons.
Lecture/Arret
Exportation :
Lorsque vous intégrez du son à une animation,
vous devez l'importer (ctrl+R). Vous vérifiez sa présence
dans la bibliothèque, effectuez un clic-droit et vous rendez
dans la partie Linkage (" Liens").
Vous cochez la case Exporter pour l'ActionScript ainsi que la case Exporter
dans la première frame. Donnez un nom à ce fichier audio
(par exemple 1.mp3 ou je_vais_faire_la_nouba.mp3 )
Bouton Play :
Créez vos boutons. L'un déclenchera la lecture
du son, l'autre la stoppera net.
Placez-les sur la scène.
Sur le bouton censé lire le son, mettez-y ce code :
Script :
on (release) {
mySound = new Sound();
mySound.attachSound("je_vais_faire_la_nouba.mp3");
mySound.setVolume(100);
mySound.start(0,1000);
}
Etudions ce code.
Nous déclarons la création d'un nouveau son et spécifions
son nom de LIAISON avec la méthode .attachSound;
Elle place ce son sous contrôle de l'objet mySound = new Sound();
déclaré plus haut.
La méthode Sound.setVolume() indique le volume du son où
0 correspond à un volume nul (muet).
Enfin la méthode Sound.start(), c'est le déclencheur de
la lecture du son. Elle ne joue que le son attaché. Les paramètres
de cette méthode sont tout d'abord le temps à laisser passer
avant la lecture du son et la second chiffre correspond au nombre de fois
où le son sera lu.
Exemple :
mySound.start(15,3); Le son sera lu après 15 secondes et
3 fois.
Bouton Stop :
Rien de plus simple ! Sur votre bouton, vous placez l'action
suivante :
Script :
on (release) {
stopAllSounds();
}
Cette fonction met en sourdine tous les sons lus quelle
que soit leur profondeur et hiérarchie des clips. Notez que stopAllSounds()
ne met pas en sourdine les sons déclenchés après
son invocation.
Dans l'hypothèse où vous souhaitez couper la lecture d'un
seul son, je vous conseillerai d'utiliser plutôt la méthode
Sound.stop(). Regardez en l'application avec cet exemple :
J'ai placé 2 boutons pour lire individuellement un
son et 2 boutons pour arrêter le son attribué.
Voici les actions pour la lecture :
Script :
on (release){
son1 = new Sound ();
son1.attachSound("1.mp3");
son1.setVolume (20);
son1.start(0.2,15);
}
Et voici le code pour stopper la lecture de ce même
son mais pas le second !
Script :
on (press){
son2.stop("1.mp3");
}
Balance Gauche ou Droite
Toujours sur le même principe vu précédemment,
vous placez deux boutons sur votre scène. L'un pour la gauche l'autre
pour la droite.
Et vous y placez l'action suivante :
Script :
on (press){
mySound = new Sound();
mySound.attachSound ("1.mp3");
mySound.setPan(-100);
mySound.setVolume (100);
mySound.start(0,2);
}
La nouveauté, c'est la méthode Sound.setPan(); Elle règle
la balance entre les hauts-parleurs.
Nombre entre -100 (gauche) et 100 (droit). En ajustant le paramètre
balance dans le temps, on peut forcer un son à se déplacer
d'un haut-parleur à l'autre (panning). Les effets de setPan() ne
peuvent être modifiés que par un autre appel à setPan().
Souris et mouvement : volume et balance
Voici un petit code rigolo que vous pouvez utiliser.
le son évolue selon la positon de la souris. Le volume augmente
et/ou diminue selon votre position sur la scène et la balance de
gauche à droite selon l'ordonnée.
Script :
onClipEvent (load){
youpiSon = new Sound(this);
youpiSon.attachSound("souris.mp3");
youpiSon.start(0,999);
}
onClipEvent(enterFrame){
mouseX = (_root._xmouse / 550)*200;
// 550 pour les coordonnées horizontales de la scène
youpiSon.setPan(mouseX - 100);
mouseY = (_root._ymouse / 400) * 300;
youpiSon.setVolume(300-mouseY);
}
Conclusion
La prochaine fois, je vous expliquerai comment faire une
barre de volume pour augmenter plus ou moins le son.
Pour toute question, n'hésitez pas à vous rendre sur le
forum ! Les
sources sont disponibles ici.
En complément : Astuce
sur le volume
GAsp