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

Flash Discussion :

[FLASH MX] Bouton avec états différents


Sujet :

Flash

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2003
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 36
    Points : 24
    Points
    24
    Par défaut [FLASH MX] Bouton avec états différents
    Bonjour à tous,

    Après avoir réglé mon pb de son grâce à ce forum, voici mon nouveau problème d'animation :

    J'ai créé 2 boutons qui représentent une touche "lecture", le 1er représentant l'état enfoncé, et l'autre représentant l'état non cliqué.

    Pour obtenir, ces différents états, j'ai créé un clip organisé de la manière suivante :
    frame 1 :
    mon bouton sous sa forme cliqué
    +
    l'actionscript suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    stop();
    BtPause.onRelease = function() { 
      gotoAndPlay(2);
    }
    frame 2 :
    mon bouton sous sa forme non cliqué
    +
    l'actionscript suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    stop();
    BtPlay.onRelease = function() { 
      gotoAndPlay(1);
    }
    Ce clip fonctionne parfaitement.

    J'intégre ensuite ce clip "boutons" dans un autre clip et nomme cette occurrence PlayPause afin qu'il contrôle l'arrêt ou la lecture du clip hôte.

    Tant que je ne place pas d'actionscript, l'occurrence PlayPause s'anime lorsque l'on passe la souris dessus

    MAIS....

    Dès que je place l'actionscript suivant dans le clip hôte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    PlayPause.onRelease = function() {
    	if (n==0){
    		play();
    		n=1
    	} else {
    		stop();
    		n=0
    	}
    }
    J'obtiens le résultat escompté MAIS mon occurrence "PlayPause" ne s'anime plus !!!

    Merci d'avance pour votre d'aide.

  2. #2
    Membre à l'essai
    Inscrit en
    Mars 2003
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 36
    Points : 24
    Points
    24
    Par défaut
    Nouveau test :

    je rajoute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PlayPause = new MovieClip();
    en première ligne du code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    PlayPause.onRelease = function() {
    	if (n==0){
    		play();
    		n=1
    	} else {
    		stop();
    		n=0
    	}
    }
    Mon occurrence PlayPause fonctionne désormais bien mais l'arrêt et la lecture de l'animation cette fois-ci ne fonctionne plus.

  3. #3
    Expert éminent

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Points : 8 779
    Points
    8 779
    Par défaut
    Salut,

    bon je vais voir si j'ai tout compris :
    Tu as un clip PlayPause.
    A l'intérieur de ce clip, tu 2 frames, une avec le BtPlay et l'autre avec BtPause.
    C'est ça ?

    Dans le 1er cas, tu dis :
    "PlayPause" ne s'anime plus !!!
    C'est à dire, c'est la navigation entre les gotoAndPlay qui ne marchent plus ?
    Est-ce que les play() et stop() marchent?

    Dans le 2e cas , tu dis :
    Mon occurrence PlayPause fonctionne désormais bien mais l'arrêt et la lecture de l'animation cette fois-ci ne fonctionne plus.
    Donc je suppose que les gotoAndPlay marchent mais pas les play() et stop(). Donc je repose ma question est-ce que les play() et stop() marchaient dans le 1er cas?

    Sinon, ne faut-il pas qu'ils soient associés à un "objet"? S'il s'agit des sons comme pour ton autre pb, un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    monSon.play();
    monSon.stop();
    Avant toutes questions, consultez nos différentes ressources disponibles gratuitement : XML, Développement Web, Flash/Flex, (X)HTML, CSS, JavaScript, AJAX, ASP
    Offres d'emploi développeur Web

  4. #4
    Membre à l'essai
    Inscrit en
    Mars 2003
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 36
    Points : 24
    Points
    24
    Par défaut
    En fait mon clip dans, lequel j'ai inséré mes 2 boutons, se nomme AnimBtPlayPause et ce clip est stocké dans ma bibliothèque et fonctionne très très bien.

    J'ai un autre clip qui lui dipose d'animations plus complexes et pour lequel je voudrais autoriser mes utilisateurs à arrêter et relancer la lecture de cette séquence quand ils le veulent.

    Ainsi, je prend mon clip AnimBtPlayPause (mes boutons) et les jète sur mon clip que je désire "maîtrisé". J'obtiens donc une occurence sans nom de mon clip AnimBtPlayPause que je nomme PlayPause.

    J'ai essayé de reproduire ce que tu m'a appris pour mon problème de son avec ce code sur le clip hôte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    PlayPause.onRelease = function() { 
       if (n==0){ 
          play(); 
          n=1 
       } else { 
          stop(); 
          n=0 
       } 
    }
    Mon occurrence nommée AnimBtPlayPause (toujours mon bouton) fonctionne très bien (animation ok pour le changement du bouton en fonction du clic effectué sur celui-ci) mais je ne peux pas contrôler la lecture du clip hôte.

    En revanche, après avoir fouillé sur le net, j'ai créé un objet MovieClip avec le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    PlayPause = new MovieClip();
    PlayPause.onRelease = function() { 
       if (n==0){ 
          play(); 
          n=1 
       } else { 
          stop(); 
          n=0 
       } 
    }
    Cette ligne PlayPause = new MovieClip(); a l'air d'apporter un élément important car le contrôle de mon clip hôte se fait sans pb mais mon occurrence PlayPause ne s'éxécute plus (plus de changement de bouton en fonction du clic de l'utilisateur).......

    Je suis désolé mais suis pas très calé sur le vocabulaire Actionscript mais espère avoir été claire.

    Concernant ta proposition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    monSon.play(); 
    monSon.stop();
    je transforme don c mon code ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    PlayPause = new MovieClip();
    PlayPause.play();
    PlayPause.onRelease = function() {
    	if (n==0){
    		play();
    		n=1
    	} else {
    		stop();
    		n=0
    	}
    }
    Mon occurrence PlayPause fonctionne et ne contrôle toujours pas l'animation.

  5. #5
    Expert éminent

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Points : 8 779
    Points
    8 779
    Par défaut
    Je vois pas trop d'où cela peut venir.
    Peux-tu poster le fla?

    Sinon pour proposer quelque chose , si tu veux simplement remplacer le lecture par pause et vice-versa suivant que le clip se joue, personnellement j'éviterais de jouer sur plusieurs images de la timeline.
    Je dis ça mais je suis peut-etre pas objectif : je n'aime pas les différents goto
    Je préfère nettement jouer sur la visibilté des boutons.
    Les deux boutons étant placés l'un sur l'autre.

    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
    btn_Pause._visible = false;
     
    btn_Pause.onRelease = function() {
      playMusic(false);
    };
     
    btn_Play.onRelease = function() {
      playMusic(true);
    };
     
    function playMusic(bool) {
      btn_Pause._visible = bool;
      btn_Play._visible = !bool;
      if(bool) {
        monSon.start((monSon.position!=monSon.duration)?monSon.position/1000:0);
      } else {
        monSon.stop();
      }
    }
    Avant toutes questions, consultez nos différentes ressources disponibles gratuitement : XML, Développement Web, Flash/Flex, (X)HTML, CSS, JavaScript, AJAX, ASP
    Offres d'emploi développeur Web

  6. #6
    Membre à l'essai
    Inscrit en
    Mars 2003
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 36
    Points : 24
    Points
    24
    Par défaut
    Mon problème est résolu grâce à l'utilisation du bon chemin sur mon clip réunissant l'état de mes 2 boutons :

    Code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    BtPause.onRelease = function() { 
       _parent.stop(); 
       gotoAndPlay(2); 
       } 
    stop();

    Sur la frame 1 et :

    Code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    BtPlay.onRelease = function() { 
       _parent.play(); 
       gotoAndPlay(1); 
    }

    sur la frame 2

    Le _parent a tout résolu
    +
    L'évènement sur le clip hote empêchait mes vrais boutons de fonctionner.

    Merci à tous pour votre aide efficace.

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

Discussions similaires

  1. [FLASH MX2004] Création de boutons avec données php
    Par joesature dans le forum Flash
    Réponses: 1
    Dernier message: 06/10/2005, 13h06
  2. Réponses: 4
    Dernier message: 04/10/2005, 00h15
  3. [C#] bouton avec 2 comportements différents ?
    Par st0j dans le forum ASP.NET
    Réponses: 8
    Dernier message: 31/05/2005, 09h50
  4. Réponses: 8
    Dernier message: 20/12/2004, 17h42
  5. Réponses: 5
    Dernier message: 29/10/2004, 16h20

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