Problème Boutons, Array, et functions en AS3

cs_chillie Messages postés 5 Date d'inscription jeudi 27 mars 2008 Statut Membre Dernière intervention 11 juin 2008 - 11 juin 2008 à 08:22
cs_chillie Messages postés 5 Date d'inscription jeudi 27 mars 2008 Statut Membre Dernière intervention 11 juin 2008 - 11 juin 2008 à 10:38
Bonjour à tous.

Je suis un train de réaliser un site internet sous flash. Pour des questions pratique de gestion du son je vais tout refaire en AS3 (). Disons pour faire bref que j'ai besoin de lire environ 13 morceaux de musique, chacun d'entre eux étant appelé par un bouton (en forme de pamplemouss...). A chaque Roll Over le titre du morceaux s'affichent dans un texte dynamique et quand on clic toutes les infos du morceaux s'affichent dans un autre texte dynamique.
Tout ceci pour le contexte du problème.
Mon souci est le suivant simplifié mon code et éviter d'appliquer à chaque action bouton une fonction nouvelle contenant le bon texte. J'ai donc crée un fichier XML avec toutes les infos. Je cherche faire ceci sans succès depuis deux jours :
"Quand je clique sur "btn1", texte infos =  infos1 du fichier XML". (et aussi ... quand je roll texteTitre affiche la ligne titre du fichier XML et quand je rollOut rien ne s'affiche.). J'ai aussi essayer de faire un tableau, XML ou Array peu m'importe, mais mon problème vint du fait que je n'arrive pas à donner une valeur à mes boutons qui me permettre d'appeler la même valeur dans le fichier xml....
Je vous met un bout du code, si ça peut aider.
Merci par avance de votre réponse, parce que là je me perd dans les méandres de la logique, des maths et de l'AS3 que je maîtrise mal.

Voici un peu ce que j'ai essayer de faire avec un tableau
//Var diverses
//
var positionTeteMemorisee:Number = 0;
var zoneCliquableJaugeLecture:Boolean = false;
//
//Var liée au son
var ecoute:Sound;
var adresseSon:URLRequest;
var pisteSon:SoundChannel = new SoundChannel();
//
// Textes
var infos:Array=new Array();
infos[0]="Titre : Limits Free \rComposé pour : Roxy";
infos[1]="Titre : We want your soul \rComposé pour : Roxy";
infos[2]="Titre : Tablas Flavor \rComposé pour : Ax's music \rComposition: Laurent Bernadoy";

//
//
//boutons actions
btn1.addEventListener(MouseEvent.MOUSE_DOWN,lireExtrait,i=0);
btn1.nomSon ="sons/1.mp3" ;
btn2.addEventListener(MouseEvent.MOUSE_DOWN,lireExtrait,i=1);
btn2.nomSon ="sons/2.mp3" ;

//Boucle
var longueurinfos:uint=infos.length;
for(var i:uint=0;i<longueurinfos;i++) {
    trace("Elément " + i+ " de infos: " + infos[i]); ;
 // et c'est là que je me perd !!!!!!
 
   

C'est en tentant qu'on devient tenteron !

1 réponse

cs_chillie Messages postés 5 Date d'inscription jeudi 27 mars 2008 Statut Membre Dernière intervention 11 juin 2008
11 juin 2008 à 10:38
Re bonjour.

J'ai essayé tant bien que mal de trouver une solution, je pense ne pas être loin mais ça ne fonctionne toujours pas...
Voici mon code.
Quelqu'un a-t-il un idée de ce qui ne va pas ? quand je teste le swf. une erreur me dit : TypeError: Error #1006: value n'est pas une fonction. at creations_fla::MainTimeline/creations_fla::frame1().
Un grand merci.





//Création du tableau
var infos:Array=new Array();
infos[1]="test pour le morceau1";
infos[2]="test pour le morceau 2";
infos[3]="test 3";
infos[4]="test 4";

//Initialisation de variables divers
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();

//Création de la boucle for.
var longinfos:uint=infos.length;
for (var i:uint=0;i<longinfos;i++){
    var monBouton="btn_"+i;
    monBouton.addEventListener(MouseEvent.MOUSE_OVER,rollover);
    monBouton.addEventListener(MouseEvent.MOUSE_OUT,rollout);
    monBouton.addEventListener(MouseEvent.MOUSE_DOWN,lireExtrait);
};
function rollover(evt:MouseEvent){
    monBouton.filters=[pample];
    infostxt.text=infos[i];
}
function rollout(evt:MouseEvent){
    monBouton.filters=null;
    infostxt.text="";
}

//Fonction principale du chargement du son

function lireExtrait(evt:MouseEvent) {
    ecoute = new Sound();
    var adresseFichierSon = new URLRequest("sons/"+i+".mp3");
    ecoute.load(adresseFichierSon);
    infostxt.text="En ecoute"+infos[i];
    zoneCliquableJaugeLecture = false;
    jaugeChargement.visible = true;
    pisteSon.stop();
    pisteSon = ecoute.play();
    jaugeProgression.addEventListener(Event.ENTER_FRAME,animerJaugeLecture);
    btLecturePause.gotoAndStop(1);

    ecoute.addEventListener(ProgressEvent.PROGRESS, chargementEnCours);
    ecoute.addEventListener(Event.COMPLETE, chargementComplet);
    pisteSon.addEventListener(Event.SOUND_COMPLETE,ecouteSonTerminee);

//ensuite il s'agit des actions des boutons play/pause, stop etc... je ne crois pas que ça soit utile pour mon problème.

C'est en tentant qu'on devient tenteron !
0
Rejoignez-nous