Il s'agit ici de gérer des boutons à deux états (lecture/arrêt). L'état initial est lecture.
Dès que l'internaute clique sur le bouton, celui ci passe à l'état arrêt. Jusque là le problème est simple. Mais dès que le nombre de morceaux de la liste est supérieur à un, il faut penser à remettre à l'état initial le bouton du morceau précédent et bien sur arrêter le morceau correspondant pour éviter la cacophonie. Principe :
Nous allons superposer 2 MovieClip (MC) de taille identique l’un servant pour la lecture l’autre pour l’arrêt. Par ActionScript nous allons masquer ou faire apparaitre l’un ou l’autre des boutons en fonction du clique de l’internaute.
Pour gérer x boutons facilement, il est souhaitable de créer un MC contenant le MC arrêt et le MC lecture pour n'avoir à manipuler sur la scène qu'un seul MC par morceau de musique. De plus si nous ajoutons dans ce MC une zone de texte dynamique nous pouvons faire afficher devant le bouton le titre du morceau.
L’organisation :
Des fichiers MP3 dans le même dossier que le fichier SWF.
Dans la bibliothèque 2 symboles de type MC (Pomme ou CTRL+F8, saisir un nom, type MovieClip, Ok). Le premier est le bouton lecture, le second est le bouton pause. Les 2 MC sont constitués de 2 calques. Ils ont un support graphique identique sur le calque du bas et le triangle lecture ou le rectangle stop sur le calque du haut.
(Pomme, CTRL+F8, saisir comme nom bouton, type MovieClip, Ok) pour créer un nouveau symbole de type MC.
Sur le premier calque, il faut tirer une occurrence (Comprendre photocopie en langage courant) du MC arrêt à la position x=0, y=0. Le nommer arret dans les propriétés.
Ensuite sur un deuxième calque, il faut tirer une occurrence du MC lecture toujours à la position x=0, y=0 le nommer lecture dans les propriétés.
Sur un troisième calque, il faut maintenant faire une zone de texte dynamique. Cette zone est à placer après les boutons soit à la position x=20, y=0. La nommer titre dans les propriétés.
Retour sur la scène.
Maintenant il faut mettre sur la scène autant d'occurrence du symbole bouton que de morceau de musique à jouer sur un seul calque. Nommer chaque occurrence bt0, bt1.....btx
Sur un deuxième calque il faut déposer une zone de texte dynamique. La nommer Alerte. Elle sert à afficher un message si le fichier MP3 n'est pas trouvé.
Enfin sur un troisième calque le code ActionScript :
Le code :
Petit rappel pour grand débutant :
1 - Une boucle c'est le fait de faire faire à l'ordinateur un nombre de fois précis les mêmes opérations.
2 - Une variable tableau est une espèce d'armoire possédant un nom et un certains nombre d'étagères. Chaque étagère porte un numéro d'ordre. Dans cette armoire je dépose une information sur chaque étagère. Ensuite il est possible de lire telle ou telle information en indiquant le nom de l'armoire et le numéro de l'étagère contenant la valeur que je souhaite utiliser.
3 - Une fonction est une espèce de boite contenant du code devant resservir x fois, sur simple appel, dans le déroulement du programme principal. Cette boite peut-être étanche ou recevoir des valeurs à traiter.
Attention : La numérotation d'une variable tableau commence toujours à zéro
Nous allons gérer les boutons par ActionScript. Pour que le code soit le plus concis possible, je vais employer une boucle pour gérer à la volée les boutons. Cette manière de faire permet d’avoir un nombre de ligne de code constant quelque soit le nombre de bouton. De plus pour centraliser les infos variables nous allons utiliser une variable tableau contenant le nom des fichiers mp3 à jouer et une variable tableau contenant les titres des morceaux.
// création d'une occurrence de l'objet son
var Musique:Sound = new Sound();
// Si le son est chargé le jouer à partir de position sinon Erreur
Musique.onLoad = function(disponible:Boolean) {
if (disponible) {
//Jouer la musique
Musique.start();
//Affiche le message dans la zone Alerte
Alerte.text = "La musique est disponible";
} else {
//Affiche le message dans la zone Alerte
Alerte.text = "Le fichier n'est pas disponible";
}
};
/*Fonction chargée de créer et de gérer les boutons
2 paramètres sont envoyés à cette fonction : le nom du bouton et le nom du fichier mp3*/
gestionBoutons = function (boutonACreer:MovieClip, Morceau:String):Void {
//Gestion bouton lecture
boutonACreer.lecture.onRelease = function(Void):Void {
// Appel à la fonction de chargement du son
Musique.loadSound(Morceau, true);
//Affichage du symbole lecture pour l'ensemble les boutons sur la scène
for (var i:Number = 0; i<nbrBouton; i++) {
scene["bt"+i].lecture._visible = true;
scene["bt"+i].arret._visible = false;
}
//Affichage du symbole stop sur le bouton actif
boutonACreer.lecture._visible = false;
boutonACreer.arret._visible = true;
};
//Gestion bouton stop
boutonACreer.arret.onRelease = function(Void):Void {
//Affiche le bouton lecture et masque le bouton arret
boutonACreer.lecture._visible = true;
boutonACreer.arret._visible = false;
//Arret du morceau
Musique.stop();
};
};
////////////////////////////////// Corps du programme ////////////////////////////////////////////////////
//Recupération du nom de la scène
var scene:MovieClip = this;
//Initialisation de la variable nbrBouton change la valeur en fonction du nombre de bouton
var nbrBouton:Number = 2;
/*Création d'un tableau contenant le nom des fichiers à jouer il suffit d'ajouter à la suite les autres
titres */
var fichierMP3:Array = new Array("ton premier fichier mp3", "ton second fichier mp3");
/*Création d'un tableau contenant le titre des fichiers à jouer il suffit d'ajouter à la suite les autres
titres */
var titreMorceaux:Array = new Array("le titre du premier MP3", "le titre du deuxième MP3");
//Boucle d'initialisation des boutons
for (var i:Number = 0; i<nbrBouton; i++) {
//Affiche le bouton lecture et masque le bouton arret
scene["bt"+i].lecture._visible = true;
scene["bt"+i].arret._visible = false;
//Remplir la zone de texte dynamique avec le titre du morceau
scene["bt"+i].titre.text = titreMorceaux[i];
//Facilité d'écriture
var boutonActuel:MovieClip = scene["bt"+i];
//Appel à la fonction de gestion des boutons avec le nom du bouton à traiter et le morceau à jouer en parametre
gestionBoutons(boutonActuel, fichierMP3[i]);
}
Après votre dur labeur vous pouvez maintenant profiter de vos morceaux de musique.....

Corel Painter 12 - Les fondamentaux
Introduction à Adobe Edge
Contao - Les fondamentaux
ZBrush 4 - Les fondamentaux
Drupal 7 - Les fondamentaux
Photoshop Elements 10 - Les fondamentaux
Premiere Elements 10 - Les fondamentaux
Les calques de forme dans After Effects














Contacts
Newsletter
Twitter
RSS
RSS des commentaires
Podcasts des tutoriels












