Le chargement de médias sous forme de fichiers externes
CHAPITRE 12
259
Vous noterez que nous obtenons la position de la tête de lecture en lisant la propriété
position de l’instance de la classe SoundChannel(), alors que la durée du son est renvoyée
par la propriété length de l’instance de la classe Sound(). À l’exception de ce détail, le
script est assez logique, mais il présente quelques erreurs dans son application.
L’initialisation de la jauge et la valeur NaN
Au lancement de l’animation son7.fla, vous pouvez constater que le rectangle qui représente
la jauge de chargement est complètement rempli, et que cette jauge bascule complètement
à gauche.
Lorsque l’animation est lancée, la ligne d’instruction de la fonction de rappel animerJaugeLecture() n’a pas encore été exécutée car le son n’est pas encore chargé. La jauge ne peut
donc être réglée à 0 dès le lancement de l’animation. Il faut par conséquent régler ce
paramètre en utilisant la propriété scaleX. Par ailleurs, le résultat du calcul du rapport
piste1.position/chainehifi.length donne la valeur NaN (ce qui signifie Not a Number), ce
qui est dû à une division par zéro, la propriété length ayant une valeur nulle. Toujours est-il
que la jauge est réglée à -1 en scaleX, ce qui se traduit par le sursaut de la jauge vers la
gauche. Pour éviter ces deux problèmes, nous devons donc écrire :
var cheminSon:URLRequest = new URLRequest("Instru4.mp3");
var chainehifi = new Sound(cheminSon);
var piste1:SoundChannel;
jauge.scaleX=0;
piste1 = chainehifi.play();
jauge.addEventListener(Event.ENTER_FRAME,animerJaugeLecture);
function animerJaugeLecture(evt:Event) {
if (piste1.position/chainehifi.length>=0) {
jauge.scaleX = piste1.position/chainehifi.length;
}
}
Afin que vous puissiez insérer facilement ce code dans un de vos programmes, nous vous
avons préparé une animation plus globale sur la gestion d’une jauge, mais elle ne gère
pas correctement les boutons Lecture et Arrêt, ce qui aurait produit un script trop long.
Consultez l’animation son3.fla pour compléter le script ci-dessous.
Fichier de référence : Chapitre12/son8.fla
var cheminSon:URLRequest = new URLRequest("Instru4.mp3");
var chainehifi = new Sound(cheminSon);
var piste1:SoundChannel;
Remarque
L’utilisation du if() n’est utile que dans cet exemple. Dans le suivant, la lecture du son ne va pas être
automatique mais obtenue à partir d’un clic ; ce test sera donc inutile.
Précédent

- 287/426

Suivant