Aide, grand débutant en galère

cs_Kaelyn Messages postés 7 Date d'inscription lundi 12 octobre 2009 Statut Membre Dernière intervention 20 février 2011 - 16 févr. 2011 à 03:18
cs_Kaelyn Messages postés 7 Date d'inscription lundi 12 octobre 2009 Statut Membre Dernière intervention 20 février 2011 - 20 févr. 2011 à 16:36
Bonjour (ou bonsoir c'est selon) J'ai réalisé un site en HTML avec du flash dedans. Grossièrement le site est une liste de noms associés à des dates. Devant chacune de ces entités il y-a deux boutons - lecture et stop - codés en flash. Ils sont autant de minis lecteurs MP3 et donc autant de .SWF pointant vers autant de .mp3. En voici le code :

   
var s:Sound=new Sound();
var sc:SoundChannel=new SoundChannel();
var st:SoundTransform=new SoundTransform();

btn_play.addEventListener(MouseEvent.CLICK,init);
btn_play.addEventListener(MouseEvent.MOUSE_OVER,over);
btn_play.addEventListener(MouseEvent.MOUSE_OUT,out);
btn_play.buttonMode=true;
btn_play.alpha=0.5;
btn_pause.alpha=0.5;

function init(e:MouseEvent){
    s.load(new URLRequest("test.mp3" ));
    sc = s.play();
    btn_play.removeEventListener(MouseEvent.CLICK,init);
    btn_play.addEventListener(MouseEvent.CLICK,lecture);
    btn_pause.addEventListener(MouseEvent.CLICK,stopper);
    btn_pause.addEventListener(MouseEvent.MOUSE_OVER,over);
    btn_pause.addEventListener(MouseEvent.MOUSE_OUT,out);
    btn_pause.buttonMode=true;
    btn_pause.alpha=0.5;
 }
function stopper(e:MouseEvent){
     sc.stop();
 }
 function lecture (e:MouseEvent){
    sc = s.play();
 }

function over(e:MouseEvent){
    e.currentTarget.alpha=1;
}
function out(e:MouseEvent){
     e.currentTarget.alpha=0.5;
}


Sur le site (enfin la page unique) il y-a actuellement plus de 70 occurrences de ce bout de code qui pointe à chaque fois des fichiers différents. L'ennuie c'est que, comme tout le monde un jour, je débute mais que tout cela me semble bien lourd.

Voici les questions.
- Est-il possible de n'avoir qu'un seul .SWF qui se génèrerai sur demande suivant le boutons "lecture" sur lequel l'utilisateur appuis ?
- Comment faire pour que lorsque l'utilisateur lance une lecture, les autres suivent automatiquement, dans l'ordre de la liste ?




Ceci est une page de test uploadée temporairement. Ceci est un projet universitaire que je mène avec un certains nombre de mes étudiants et je n'ai pas encore aboutis avec les négociations tarifaires engagées avec la SACEM. En voici l'adresse : http://www.brownieline.com/

Merci d'avance !

9 réponses

BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
16 févr. 2011 à 08:57
Hello,

pourquoi tu ne fais pas un lecteur mp3 multipistes ? Comme ça tu gères tes musiques grâce à un seul swf (donc un seul code), tu charges les urls des musiques grâce à un fichier xml, et tu lis les morceaux après avoir chargé le fichier.xml dans ton swf.

A plus ,

BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;
0
cs_Kaelyn Messages postés 7 Date d'inscription lundi 12 octobre 2009 Statut Membre Dernière intervention 20 février 2011
16 févr. 2011 à 09:24
Pourquoi pas mais (j'ai honte de la question qui va suivre) mais comment mettre cela en place ?
0
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
16 févr. 2011 à 11:52
Re,

tout d'abord il te faut te familiariser avec le chargement de xml dans Flash : charger un xml dans Flash
Ensuite il te faut goupiller ça avec ton lecteur mp3, un excellent exemple très détaillé ici : [w.yazo.net/index.php/gerer-le-son gestion du son] avec les sources qui vont bien.

A plus ,

BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;
0
cs_Kaelyn Messages postés 7 Date d'inscription lundi 12 octobre 2009 Statut Membre Dernière intervention 20 février 2011
16 févr. 2011 à 12:06
Merci, je test ça cet aprem ;)

Je donne des nouvelles de mes avancées ensuite.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Kaelyn Messages postés 7 Date d'inscription lundi 12 octobre 2009 Statut Membre Dernière intervention 20 février 2011
16 févr. 2011 à 12:07
.Le second lien (gestion du son) semble ne pas marcher.
0
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
16 févr. 2011 à 14:53
Effectivement, désolé...
Le voici en clair :
http://www.yazo.net/index.php/gerer-le-son

BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;
0
cs_Kaelyn Messages postés 7 Date d'inscription lundi 12 octobre 2009 Statut Membre Dernière intervention 20 février 2011
16 févr. 2011 à 22:04
Bon be j'ai du boulot. Je donne des nouvelles demain. Histoire d'essayer un peu de forger seul ;)
0
cs_Kaelyn Messages postés 7 Date d'inscription lundi 12 octobre 2009 Statut Membre Dernière intervention 20 février 2011
19 févr. 2011 à 16:38
Salut, ct'encore moi ! ^^ J'ai réalisé mon lecteur avec un fichier XML pour "playlist". Toutefois je bute sur un truc. J'ai ça @a la fin de l'écoute d'un son :

function ecouteSonTerminee(evt:Event) {
btLecturePause.gotoAndStop(2);
jaugeProgression.removeEventListener(Event.ENTER_FRAME,animerJaugeLecture);
positionTeteMemorisee = 0;
}



Je voudrai que lorsque le morceaux se termine, la lecture continu sur le morceau suivant ^^. Désolé si la réponse est trop évidente et que du coups la question semble un peu bête.
0
cs_Kaelyn Messages postés 7 Date d'inscription lundi 12 octobre 2009 Statut Membre Dernière intervention 20 février 2011
20 févr. 2011 à 16:36
Je me rends compte que peut-être j'ai donné trop peu de renseignements ^^ dsl. Je voudrai donc que la lecture continu sur le fichier suivant lorsqu'un son se termine. J'aimerai aussi que la liste de sons soient joués en boucle.

Cela va faire une semaine que je galère... juste sur cette fonction là ^^
Donc, je reprends, avec plus de détails :

Je charge mon son et ma playlist comme ceci :

//
//Chargement des données
//

var datasXML:XML;
var nombreTitres:*;
var chargeurDatasXML:URLLoader = new URLLoader();
var adresseFichierXML:URLRequest = new URLRequest("donnees.xml");
chargeurDatasXML.load(adresseFichierXML);
chargeurDatasXML.addEventListener(Event.COMPLETE,datasDisponibles);

//
//Initialisation de variables divers
//

var ligneCliquee:Number = 0;
var positionTeteMemorisee:Number = 0;
var zoneCliquableJaugeLecture:Boolean = false;

//
//Déclaration des instances liées au son
//

var ecoute:Sound;
var adresseSon:URLRequest;
var pisteSon:SoundChannel = new SoundChannel();

//
//Gestionnaire de fin de chargement des données XML
//

function datasDisponibles(evt:Event) {
        datasXML = new XML(chargeurDatasXML.data);
        nombreTitres = datasXML.Morceaux.children().length();
        listeTitres.text = datasXML.Morceaux.morceau.@nom.toXMLString();
}

function chargerExtrait(numeroLigneCliquee) {
        if (numeroLigneCliquee==-1) {
                numeroLigneCliquee = 0;
        }

        var adresseSon = datasXML.Morceaux.morceau[numeroLigneCliquee].@fichier;
        ecoute = new Sound();
        var adresseFichierSon = new URLRequest("musiques/"+adresseSon);
        ecoute.load(adresseFichierSon);
        zoneCliquableJaugeLecture = false;
        pisteSon.stop();
        pisteSon = ecoute.play();
        btLecturePause.gotoAndStop(1);
        ecoute.addEventListener(ProgressEvent.PROGRESS, chargementEnCours);
        ecoute.addEventListener(Event.COMPLETE, chargementComplet);
        pisteSon.addEventListener(Event.SOUND_COMPLETE,ecouteSonTerminee);
        titreActuel.text = datasXML.Morceaux.morceau[numeroLigneCliquee].@nom;
}



Ensuite j'ai :
//
//Gestionnaire d'évènement du clic sur la liste des titres
//

listeTitres.addEventListener(MouseEvent.MOUSE_DOWN,jouerMorceau);

function jouerMorceau(evt:MouseEvent) {
        ligneCliquee = listeTitres.getLineIndexAtPoint(listeTitres.mouseX,listeTitres.mouseY);
        chargerExtrait(ligneCliquee);
        btLecturePause.mouseEnabled=true;
        btn_stop.mouseEnabled=true;
        btRetourDebut.mouseEnabled=true;
}



À la fin de la lecture d'un son j'ai mis ça pour l'instant :
function ecouteSonTerminee(evt:Event) {
        btLecturePause.gotoAndStop(2);
        positionTeteMemorisee = 0;
        btLecturePause.mouseEnabled=false;
        btRetourDebut.mouseEnabled=false;
        btn_stop.mouseEnabled=false;
        pisteSon.stop();
        ecoute.close();
}


Si quelqu'un pouvais m'indiquer comment intégrer cette fonctionnalité ça me soulagerai d'un terrible poids ;)

Le grand débutant vous remercie d'avance :)
0
Rejoignez-nous