Un "fondu" pour arrêter un son

Gof2 Messages postés 2 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 1 juillet 2008 - 30 juin 2008 à 17:51
blasandy Messages postés 1 Date d'inscription jeudi 10 septembre 2009 Statut Membre Dernière intervention 10 septembre 2009 - 10 sept. 2009 à 02:33
Bonjour à tous,

Je suis un très très grand débutant en flash. Je bricole une petite interface personnelle où j'ai inséré des composants basiques pour lire et stopper des sons d'après des boutons.

Pour le bouton "Play", je n'ai rédigé aucun code Action script puisque je n'ai fait qu'insérer des images clés sur lesquelles je n'ai glissé qu'un son à chaque fois à exécuter lors du clic des boutons (play). Bref, que du basique.

Le code pour le bouton stop a été généré avec les composants natifs (fonctions globales>contrôle du scénario>stopAllSounds).
on (release) {
    stopAllSounds();
}
Là encore tout simple.

=> J'aurais désiré savoir s'il m'était possible facilement de modifier ce code de sorte d'insérer un fondu pour l'extinction du son, quelqu'il soit. Ainsi, en appuyant sur stop, le son de l'animation irait en diminuant suivant une durée à déterminer jusqu'à l'arrêt du son lorsque le volume serait à 0.

N'ayant aucune base, ça me semble délicat. Je ne demande pas un code clé en main, mais si vous avez connaissance d'un petit exemple ou tutoriel qui correspondrait à mon objet, cela m'intéresserait. Merci par avance.

4 réponses

cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 2
1 juil. 2008 à 10:13
Salut,

va voir cette source flashkod

@+
0
Skev Messages postés 255 Date d'inscription mardi 27 juin 2006 Statut Membre Dernière intervention 9 janvier 2010 3
1 juil. 2008 à 10:49
Bonjour,
Je vais te donner un exemple basics pour realiser ce que tu souhaite :

//
Tout d'abord place un bouton play, et un bouton stop sur la scene que tu nomme respectivement "btn_play" et "btn_stop".
Ensuite prend n'importe quelle music mp3 et place la dans le meme dossier que ton .fla et ton .swf,
//
Maintenant que l'installation est faite ,passons au code, clic sur la premiere image clé de la timeline et appuie sur F9 pour ouvrir la fenetre d'action et tape :

//Code
stop();//on s'arrete a cette image, necessaire si tu en a plusieur
//
My_song = new Sound();// on declare un nouveau son qu'on nomme "My_song"
My_song.loadSound("music.mp3", true);//on charge dans "My_song" la music "music.mp3" (bien sur toi tu metra le nom de ta music)
//
autoplay = false;//on desactive l'autoplay, si tu veux l'activer remplace simplement "false" par "true"
delay_fondu = 5;//ceci sera la vitesse de fondu, plus le nombre sera haut plus le fondu sera rapide
//
if (!autoplay) {// si l'autoplay est desactiver
    My_song.stop();//la music s'arrete
}
//
btn_play.onRelease = function() {// lors de l'appuie sur "btn_play"
    if (!in_stop) {//si la musique n'est pas en train de s'arrete (pour info "!in_stop" est pareille que "in_stop == false" a l'exception que c'est plus rapide a ecrire !)
        My_song.start();// la musique se joue
    }
};
btn_stop.onRelease = function() {//Lors de l'appuie sur "btn_stop"
    if (!in_stop) {//si la musique n'est pas en train de s'arreter
        volume_song = My_song.getVolume();//on stock le volume actuel de la musique dans une variable appelé "volume_song"
        in_stop = true;//Et on indique que la musique est en train de s'arreter
    }
};
//
onEnterFrame = function () {//Lors de l'entree a l'image (ceci est une fonction continue elle execute en boucle toute les action qui lui son attribué
    if (in_stop) {//si la musique est en train de s'arretre
        My_song.setVolume(volume_song);//on attribue au volume de "My_song" la valeur de "volume_song"
        if (volume_song>0) {//si "volume_song" est superieur a 0
            volume_song -= delay_fondu; alors //alors on lui soustrait a lui meme la valeur de "delay_fondu" (qu'on a definit plus haut)
        } else {//sinon (donc si "volume_song" n'est plus superieur a 0, donc y est egal)
            My_song.stop();//on arrete la musique
            My_song.setVolume(100);//reinitialise son volume a 100%
            in_stop = false;//et indique sue la musique n'est plus en train de s'arreter
        }
    }
};
//

Voila , j'ai mis un max d'explication pour que tu ne sois pas perdu, si tu as malgre tout des question ,n'hesite pas
0
Gof2 Messages postés 2 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 1 juillet 2008
1 juil. 2008 à 21:36
Bonsoir Girou et Skev,

Je vous remercie tous deux de vos réponses et pistes. Je vais voir pour prendre le temps de regarder cela et vous tiens au courant.

Merci à vous ;)
0
blasandy Messages postés 1 Date d'inscription jeudi 10 septembre 2009 Statut Membre Dernière intervention 10 septembre 2009
10 sept. 2009 à 02:33
wahou!!!! merci beaucoup!
je vien de profiter de tes conseils! génial merci mille fois!
0
Rejoignez-nous