Ce code permet de jouer un son d'ambiance (mp3) en boucle et appliquer à un boutton, il gére automatique le Fade In et le Fade Out.
Le code est à placer sur un calque dans le root de votre animation.
Il suffit de placer sur le boutton l'action suivante :
on(release) {
_level0.PlaySon();
}
Pour lancer le son d'ambiance em même temps que votre animation, placer sur la timeline à l'image où doit se jouer le son le code suivant : _level0.PlaySon();
Source / Exemple :
function PlaySon() {
/*
DECLARATION DES VARAIBLES - PLACEZ LES VALEURS QUE VOUS VOULEZ
var SonVolMin = 0; // Volume minimum (min : 0)
var sonVolMax = 100; // Volume maximum ( max : 100)
var sonVolFad = 5; // Valeur d'incrémentartion ou de décrémentation du Fade (prendre un multiple de 10 : 1, 2, 5 ou 10)
var FadeInterval = 200; // Temps en millisecondes de répétition de la fonction FadeSon()
var SonUrl = "boucle 5.mp3"; // Url du son MP3 à jouer en boucle
/*
Cette fonction gère le Fade In et le Fade Out
function FadeSon(vol) {
/*
Cette condition permet de ne pas se retrouver avec un volume inférieur à 0 ou suppérieur à 100
if (monson.getVolume() <> SonVolMin || monson.getVolume() <> sonVolMax) monson.setVolume(monson.getVolume() + vol) ;
/*
Dès que le volume répond à l'une des 2 conditions
on supprime la boucle sur cette fonction.
if (monson.getVolume() == SonVolMin || monson.getVolume() == sonVolMax) clearInterval(intervalID);
}
/*
Si l'objet Sound n'existe pas, on le crée.
Ceci évite de recréer un nouvel objet Sound
à chaque click de souris.
if (monson == undefined) {
monson = new Sound();
/*
On Charge le son MP3 depuis l'URL passé en varaible SonUrl.
monson.loadSound(SonUrl, true);
monson.setVolume(SonVolMin) ;
/*
Comme le volume à été initialisé à sa valeur minimum (ici : 0) sur la
ligne précédent, on lance un Fade In sur le son.
intervalID = setInterval(FadeSon, FadeInterval, sonVolFad);
/*
Une fois que la duration de son est complète
on relance la lecture du son. On crée ainsi
une boucle sur le son.
monson.onSoundComplete = function() {
this.start();
}
}
/*
Si le volume est au maximum, alors on fait
un Fade Out sur celui-ci.
else if (monson.getVolume() == sonVolMax) {
intervalID = setInterval(FadeSon, FadeInterval, -sonVolFad);
}
/*
Si le volume est au minimum, alors on fait
un Fade In sur celui ci
else if (monson.getVolume() == SonVolMin) {
intervalID = setInterval(FadeSon, FadeInterval, sonVolFad);
}
}
Conclusion :
Ce code assez simpliste, mais efficace est une bonne base de travail. A vous d'y apporter vos modifications ...
24 sept. 2007 à 10:39
Je sais pas si tu as vu, mais lorsqu'on double-clique sur le haut parleur, le volume ne s'arrête plus de monter et y a pas moyen de l'arrêter !!
Alors, y a sûrement un bug dans le code...A l'heure actuelle j'ai pas de solution, mais je regarderai ça d'un peu plus près...
Si quelqu'un trouve une solution...
@ +
27 oct. 2005 à 13:47
Change le LEVEL de ton script en fonction du niveau d'encapsulage de tes animations, je ne sais pas comment tu as structré ton FLA.
En fonction de l'action :
Si c'est un boutton :
on(Release) {
_levelx.PlaySon();
}
Si c'est un clip :
tonclip.onRelease = function() {
_levelx.PlaySon();
}
x (dans _level) est le niveau où se trouve ton clip.
Bon code
27 oct. 2005 à 13:39
Ce n'est pas un problème de streaming ou de ton hébergeur, mais de ma source ...
renome le fichier MP3 boucle5.mp3 et dans l'image 1 du FLA renome var SonUrl = "boucle5.mp3"
Ainsi le fichier fonctionnera correctement
De plus, j'ai vu une petite erreur dans mon script qui sera corrigée dès que j'aurai le temps ... taf oblige !!!!
18 sept. 2005 à 18:23
Peut-être que ca vient de free.fr et du streaming?
Pourrait-on faire la même chose avec un mp3 intégré au swf?
merci
6 sept. 2005 à 22:06
J'aimerais savoir si qqun pourrais m'indiquer par ou commencer! si j'ai 2 anim ds une page. Une est principal et l'autre secondaire, si l'utilisateur clic et seulement s'il clique sur la secondaire, alors le son de la principal, descend en FADEOUT. Après l'anim de la secondaire remet le son de la principal en FADEIN...Je sais LOCALCONNECT mais comment gérer ça maintenant...J'Arrive à les faire communiquer ensemble par un mc mais concernant le son....quedal...svp..besoin d'aide...
Jeecy
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.