Afficher une image liée a un son aléatoire.

cs_djo22 Messages postés 3 Date d'inscription lundi 17 mars 2008 Statut Membre Dernière intervention 8 juin 2010 - 30 mai 2010 à 11:46
cs_djo22 Messages postés 3 Date d'inscription lundi 17 mars 2008 Statut Membre Dernière intervention 8 juin 2010 - 8 juin 2010 à 12:08
Bonjour,

je n'y connais pas grand chose en as3 sur flash et je suis entrain de créer un petit logiciel de logopédie pour l'école.

je dois créer une lecture aléatoire de 14 mp3 qui se lancent en cliquant sur un bouton1 (pour ça, aucuns problèmes) et afficher l'image correspondant au son lorsque je clic sur le bouton2.

donc, j'ai 2 boutons (btn_play et btn_ok) et je voudrais que lorsque je clic sur 'btn_play', il joue un des 14 sons aléatoirement puis après avoir joué ce son, si je clic sur 'btn_ok', il affiche une image correspondant à ce son.
(ce sont des sons et images d'animaux).

ex: btn_play --> lecture son4.mp3 (son d'une vache) puis btn_ok --> affiche image4.png (image d'une vache).


j'ai fait comme ceci mais j'ai 2 erreurs et je ne trouve pas comment les résoudre.


1) lorsque je rentre dans ma séquence "notes" après avoir appuyé sur le bouton "btn_notes" dans la séquence "menu", j'ai une erreur de sortie :

TypeError: Error #1010: Un terme n'est pas défini et n'a pas de propriété.
at intro_fla::MainTimeline/frame183()
at flash.display::MovieClip/gotoAndPlay()
at intro_fla::MainTimeline/gotonotes()

ce que je n'avais pas avant de d'ajouter le code:
//images annimaux
var i:uint=new uint(0);
var loaded:uint=new uint(0);
tableau['imagesUrls']=new Array("image1.png", "image2.png", "image3.png", "image4.png", "image5.png", "image6.png", "image7.png", "image8.png", "image9.png", "image10.png", "image11.png", "image12.png", "image13.png", "image14.png");
tableau['nomsAnimaux']=new Array("Ane", "chien", "grenouille", "canard", "chat", "cheval", "chevre", "coq", "elephant", "loup", "oiseau", "poule", "singe", "vache");
tableau['imagesLoaded']=new Array();
var conteneurImage:MovieClip=new MovieClip();
conteneurImage.name="conteneur";
stage.addChild(conteneurImage);
for (i=0; i<tableau['images'].length; i++) {
    var ldr:Loader=new Loader();
    ldr.load(new URLRequest(tableau['images'][i]));
    ldr.name=String(i);
    ldr.addEventListener(Event.COMPLETE, onLoaded);
}

function onLoaded(event:Event):void {
    var thisLdr:Loader=event.target as Loader;
    tableau['imagesLoaded'][uint(thisLdr.name)]=thisLdr;
    loaded++;
    if (loaded==tableau['imagesUrls'].length) {
        btn_ok.addEventListener(MouseEvent.CLICK, onAnimalClic);
    }
}

function onAnimalClic(event:MouseEvent):void {
    var c:DisplayObjectContainer=DisplayObjectContainer(stage.getChildByName("conteneur"));
    while (c.numChildren>0) {
      c.removeChildAt(0);
    }
        c.addChild(tableau['imagesLoaded'][uint(event.target.name)]);
         c.x = 200;       //uniquement pour tester le positionnement
         c.y = 200;
}





2) l'image ne s'affiche pas quand je clic sur "btn_ok" .



voici mon code de la séquence "notes":
stop();
import flash.media.Sound;
import flash.media.SoundMixer;


//sons annimaux
var tableau:Array=new Array();
var snd:Sound=new Sound();
tableau['sons']=new Array("sons/son1.mp3", "sons/son2.mp3", "sons/son3.mp3", "sons/son4.mp3", "sons/son5.mp3", "sons/son6.mp3", "sons/son7.mp3", "sons/son8.mp3", "sons/son9.mp3", "sons/son10.mp3", "sons/son11.mp3", "sons/son12.mp3", "sons/son13.mp3", "sons/son14.mp3");


btn_play.addEventListener(MouseEvent.CLICK, lecture);
btn_repeat.addEventListener(MouseEvent.CLICK, repeat);

function lecture(evt:MouseEvent):void { 
SoundMixer.stopAll();
snd = new Sound();
snd.load(new URLRequest(tableau['sons'][(Math.floor(Math.random() *tableau['sons'].length))]));
snd.play();

}

function repeat(evt:MouseEvent):void {
SoundMixer.stopAll();
snd.play();

}




//images annimaux
var i:uint=new uint(0);
var loaded:uint=new uint(0);
tableau['imagesUrls']=new Array("image1.png", "image2.png", "image3.png", "image4.png", "image5.png", "image6.png", "image7.png", "image8.png", "image9.png", "image10.png", "image11.png", "image12.png", "image13.png", "image14.png");
tableau['nomsAnimaux']=new Array("Ane", "chien", "grenouille", "canard", "chat", "cheval", "chevre", "coq", "elephant", "loup", "oiseau", "poule", "singe", "vache");
tableau['imagesLoaded']=new Array();
var conteneurImage:MovieClip=new MovieClip();
conteneurImage.name="conteneur";
stage.addChild(conteneurImage);
for (i=0; i<tableau['images'].length; i++) {
    var ldr:Loader=new Loader();
    ldr.load(new URLRequest(tableau['images'][i]));
    ldr.name=String(i);
    ldr.addEventListener(Event.COMPLETE, onLoaded);
}

function onLoaded(event:Event):void {
    var thisLdr:Loader=event.target as Loader;
    tableau['imagesLoaded'][uint(thisLdr.name)]=thisLdr;
    loaded++;
    if (loaded==tableau['imagesUrls'].length) {
        btn_ok.addEventListener(MouseEvent.CLICK, onAnimalClic);
    }
}

function onAnimalClic(event:MouseEvent):void {
    var c:DisplayObjectContainer=DisplayObjectContainer(stage.getChildByName("conteneur"));
    while (c.numChildren>0) {
      c.removeChildAt(0);
    }
        c.addChild(tableau['imagesLoaded'][uint(event.target.name)]);
         c.x = 200;       //uniquement pour tester le positionnement
         c.y = 200;
}



//boutons de navigation
btn_close.addEventListener(MouseEvent.CLICK, exit1);

function exit1(event:MouseEvent):void {
fscommand("quit");
}

btn_home.addEventListener(MouseEvent.CLICK, gotomenu1);

function gotomenu1(evt:MouseEvent):void {
gotoAndPlay(45, "menu");
}



voici le lien pour télécharger mon .fla :
http://filebeam.com/cc7529e6e7d0e985c99deb617953afe3

j'y connait rien du tout et la je sèche, les sites et l'aide de flash ne m'aide plus, je suis perdu.

merci d'avance pour votre aide.

2 réponses

cs_djo22 Messages postés 3 Date d'inscription lundi 17 mars 2008 Statut Membre Dernière intervention 8 juin 2010
1 juin 2010 à 10:58
Personne ne saurait me guider?
0
cs_djo22 Messages postés 3 Date d'inscription lundi 17 mars 2008 Statut Membre Dernière intervention 8 juin 2010
8 juin 2010 à 12:08
UP svp
0
Rejoignez-nous