Son ActionScript
Contrôler le son d'une animation
La classe Sound
ActionScript comporte des classes permettant de manipuler des données à l'aide de méthodes et de propriétés.
La classe Sound permet de contrôler le son d'une animation. Si vous ne spécifiez pas une cible lorsque vous créez un objet new Sound, vous pouvez utiliser les méthodes pour contrôler le son pour l'animation entière.
Attention: L'ActionScript 3, au travers de la classe Sound, ne prend en charge qu'un format unique : le format MP3.
Exemple AS3: charger et lire un fichier son
// création du conteneur du son
var conteneurSon:Sound = new Sound();
// url du fichier mp3
var fichierMP3:URLRequest = new URLRequest("sons/monSon.mp3");
// Objet permettant de contrôler le son
var canal:SoundChannel = new SoundChannel();
// chargement du mp3 dans le conteneur
conteneurSon.load(fichierMP3);
// Lecture du son et stockage dans le canal
canal = conteneurSon.play();
// création du conteneur du son
var conteneurSon:Sound = new Sound();
// url du fichier mp3
var fichierMP3:URLRequest = new URLRequest("sons/monSon.mp3");
// Objet permettant de contrôler le son
var canal:SoundChannel = new SoundChannel();
// chargement du mp3 dans le conteneur
conteneurSon.load(fichierMP3);
// Lecture du son et stockage dans le canal
canal = conteneurSon.play();
Lire un son d'une bibliothèque en AS3
Dans la bibliothèque, on fais un clic droit sur le fichier audio puis propriétés.
On coche "Exporter pour ActionScript" et on donne un nom de classe à notre son (exemple : LeBonSon)
Puis dans le code, on saisie :
var monSon:LeBonSon = new LeBonSon();
var channel:SoundChannel = monSon.play();
Contrôle du volume et de la balance d'un son en ActionScript 3 (AS3)
C'est avec la classe SoundTransform que nous allons pouvoir contrôler le son au niveau du volume et de la balance.
Deux boutons : volume faible et balance gauche :
Exemple AS3: Contrôle du son
// création du conteneur du son
var conteneurSon:Sound = new Sound();
// url du fichier mp3
var fichierMP3:URLRequest = new URLRequest("sons/monSon.mp3");
// Objet permettant de contrôler le son
var canal:SoundChannel = new SoundChannel();
// Objet permettant de réaliser les modifications du son
var controle:SoundTransform;
// chargement du mp3 dans le conteneur
conteneurSon.load(fichierMP3);
// Lecture du son et stockage dans le canal
canal = conteneurSon.play();
// Bouton de volume
var volumeFaible:SimpleButton = new SimpleButton();
var normal:TextField = new TextField();
var survol:TextField = new TextField();
var clic:TextField = new TextField();
normal.text = survol.text = clic.text = "Volume faible";
survol.textColor = 0xFF0000;
clic.textColor = 0x0000FF;
with(volumeFaible) {
upState = normal;
overState = survol;
downState = clic;
hitTestState = normal;
x = 50;
y = 20;
}
// Clic sur le volumeFaible function
clicVolFaible(evt:MouseEvent):void {
// On stocke les propriétés du canal dans un objet SoundTransform
controle = canal.soundTransform;
// Le volume peut être réglé entre 0 (faible) et 1 (fort)
controle.volume = 0.3;
// On applique le nouveau volume au canal
canal.soundTransform = controle;
}
// Evénement click du bouton est défini
volumeFaible.addEventListener(MouseEvent.CLICK, clicVolFaible);
// Le bouton est affiché
this.addChild(volumeFaible);
// Balance à gauche
var balanceGauche:SimpleButton = new SimpleButton();
var normal2:TextField = new TextField();
var survol2:TextField = new TextField();
var clic2:TextField = new TextField();
normal2.text = survol2.text = clic2.text = "Enceinte gauche";
survol2.textColor = 0xFF0000;
clic2.textColor = 0x0000FF;
with(balanceGauche) {
upState = normal2;
overState = survol2;
downState = clic2;
hitTestState = normal2;
x = 150;
y = 20;
}
// Clic sur le volumeMoyen
function balGauche(evt:MouseEvent):void {
// On stocke les propriétés du canal dans un objet SoundTransform
controle = canal.soundTransform;
// La balance peut être réglé entre -1 (gauche) et 1 (droite)
controle.pan = -1;
// On applique la nouvelle balance au canal
canal.soundTransform = controle;
}
// Evénement click du bouton est défini
balanceGauche.addEventListener(MouseEvent.CLICK, balGauche);
// Le bouton est affiché
this.addChild(balanceGauche);
// création du conteneur du son
var conteneurSon:Sound = new Sound();
// url du fichier mp3
var fichierMP3:URLRequest = new URLRequest("sons/monSon.mp3");
// Objet permettant de contrôler le son
var canal:SoundChannel = new SoundChannel();
// Objet permettant de réaliser les modifications du son
var controle:SoundTransform;
// chargement du mp3 dans le conteneur
conteneurSon.load(fichierMP3);
// Lecture du son et stockage dans le canal
canal = conteneurSon.play();
// Bouton de volume
var volumeFaible:SimpleButton = new SimpleButton();
var normal:TextField = new TextField();
var survol:TextField = new TextField();
var clic:TextField = new TextField();
normal.text = survol.text = clic.text = "Volume faible";
survol.textColor = 0xFF0000;
clic.textColor = 0x0000FF;
with(volumeFaible) {
upState = normal;
overState = survol;
downState = clic;
hitTestState = normal;
x = 50;
y = 20;
}
// Clic sur le volumeFaible function
clicVolFaible(evt:MouseEvent):void {
// On stocke les propriétés du canal dans un objet SoundTransform
controle = canal.soundTransform;
// Le volume peut être réglé entre 0 (faible) et 1 (fort)
controle.volume = 0.3;
// On applique le nouveau volume au canal
canal.soundTransform = controle;
}
// Evénement click du bouton est défini
volumeFaible.addEventListener(MouseEvent.CLICK, clicVolFaible);
// Le bouton est affiché
this.addChild(volumeFaible);
// Balance à gauche
var balanceGauche:SimpleButton = new SimpleButton();
var normal2:TextField = new TextField();
var survol2:TextField = new TextField();
var clic2:TextField = new TextField();
normal2.text = survol2.text = clic2.text = "Enceinte gauche";
survol2.textColor = 0xFF0000;
clic2.textColor = 0x0000FF;
with(balanceGauche) {
upState = normal2;
overState = survol2;
downState = clic2;
hitTestState = normal2;
x = 150;
y = 20;
}
// Clic sur le volumeMoyen
function balGauche(evt:MouseEvent):void {
// On stocke les propriétés du canal dans un objet SoundTransform
controle = canal.soundTransform;
// La balance peut être réglé entre -1 (gauche) et 1 (droite)
controle.pan = -1;
// On applique la nouvelle balance au canal
canal.soundTransform = controle;
}
// Evénement click du bouton est défini
balanceGauche.addEventListener(MouseEvent.CLICK, balGauche);
// Le bouton est affiché
this.addChild(balanceGauche);
Source: Bases-as3.fr
Attention: L'ActionScript 3, au travers de la classe Sound, ne prend en charge qu'un format unique : le format MP3.
-> Voir un super article sur wiki.mediabox
-> Pour aller plus loins, suivez le tutorial de JDN Développeurs.