IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ActionScript 3 Discussion :

Problème avec SoundChannel et SOUND_COMPLETE


Sujet :

ActionScript 3

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Février 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 9
    Par défaut Problème avec SoundChannel et SOUND_COMPLETE
    Bonjour,

    Je suis nouveau dans la programmation en action script 3. J'ai un problème avec SOUND_COMPLETE et SoundChannel.

    Voila ce que je veux faire :
    Dans mon animation j'ai deux boutons (a et b) quand je clique sur l'un ou sur l'autre, il y a un son qui est joué.

    Durant la lecture, je veux modifier l'apparence du bouton, puis à la fin du son je veux que le bouton redeviens comme au début.

    Pour savoir si le son est finit de joué j'utilise l'évènement SOUND_COMPLETE, pour les deux évènements j'utilise la même fonction.
    Comment je peux savoir quel est le son qui viens de se finir pour rétablir l'apparence du bouton associé ?

    Dans les propriétés currentTarget et target je récupère l'objet soundChannel.
    Est-il possible d'exploiter quelque chose dans les propriétés de l'objet soundChannel

    Voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
     
    //Gestion du bouton A
    var bouton_a: scene_bouton_a;
    var bouton_a_lecture:scene_bouton_a_lecture;
     
    bouton_a = new scene_bouton_a();
    bouton_a_lecture = new scene_bouton_a_lecture();
    addChild(bouton_a);
    bouton_a.x = 150;
    bouton_a.y = 150;
    //Gestion du son A
    var chemin_son_a:URLRequest = new URLRequest("a.mp3");
    var son_a = new Sound();
    var piste_a:SoundChannel;
    son_a.load(chemin_son_a);
     
    //Gestion du bouton B
    var bouton_b: scene_bouton_b;
    var bouton_b_lecture:scene_bouton_b_lecture;
     
    bouton_b = new scene_bouton_b();
    bouton_b_lecture = new scene_bouton_b_lecture();
    addChild(bouton_b);
    bouton_b.x = 250;
    bouton_b.y = 250;
     
    //Gestion du son B
    var chemin_son_b:URLRequest = new URLRequest("b.mp3");
    var son_b = new Sound();
    var piste_b:SoundChannel;
    son_b.load(chemin_son_b);
     
    //Evenement CLICK
    bouton_a.addEventListener(MouseEvent.CLICK,lanceSonA);
    bouton_b.addEventListener(MouseEvent.CLICK,lanceSonB);
     
     
     
    function lanceSonA(evt:MouseEvent):void {
     
            piste_a = a_son.play();         
            removeChild(bouton_a);
            addChild(bouton_a_lecture);
            bouton_a_lecture.x=bouton_a.x;
            bouton_a_lecture.y=bouton_a.y;
     
            piste_a.addEventListener(Event.SOUND_COMPLETE,sonTerminee);
     
    }
    function lanceSonB(evt:MouseEvent):void {
     
            piste_b = a_son.play();         
            removeChild(bouton_a);
            addChild(bouton_a_lecture);
            bouton_a_lecture.x=bouton_b.x;
            bouton_b_lecture.y=bouton_b.y;
     
            piste_b.addEventListener(Event.SOUND_COMPLETE,sonTerminee);
     
    }
     
     
    function sonTerminee(evt:Event):void
    {
            trace("fin musique");
            //Comment savoir si c'est piste_a ou piste_b 
    }
    Merci d'avance

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 73
    Par défaut
    Essai un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    function sonTerminee(evt:Event):void
    {
            trace("fin musique");
            //Comment savoir si c'est piste_a ou piste_b
            switch(e.target){
                 case piste_a: ton_action; break;
                 case piste_b: ton_action; break;
            }
    
            //ou
    
            if(e.target == piste_a){
                //tes actions
            }...
    }

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Février 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 9
    Par défaut
    Merci

    Ça ma aidé j'avais pensé à des solutions plus compliquer pour résoudre mon problème mais celle ci est la plus simple.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  2. Problème avec [b]struct[/b]
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 2
    Dernier message: 17/07/2002, 10h25
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo