Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Flash] Condition par rapport au n° d'image de la timeline

Sujet résolu
    2 janvier 2008 à 15:49:35

    Bonjour à tous !!!
    Bonne année tout d'abord ^^

    Alors ma question est simple, la réponse ne le sera peux être pas :p

    Quelqu'un pourrait t'il me traduire les lignes de dessous en AS2 svp (c'est au niveau de la condition que je trouve pas):

    1. if(je suis sur limage 5 de la timeline){
    2.   //Action
    3. }else{
    4.   //Action
    5. }


    Je vous met le code dans lequel je voudrais mettre les lignes de dessus:

    1. this.onRelease = function(){
    2.     _root.gotoAndStop("toto");
    3.         _root.txt1.gotoAndPlay("tata");
    4.         }



    Merci d'avance pour vos réponses ^^
    • Partager sur Facebook
    • Partager sur Twitter
      2 janvier 2008 à 17:00:56

      Pour récupérer le numéro de l'image il existe la propriété '_currentFrame'
      donc :
      1. this.onRelease = function(){
      2.     if(this._currentFrame == 5){
      3.         _root.gotoAndStop("toto");
      4.     }else{
      5.         _root.txt1.gotoAndPlay("tata");
      6.     }
      7. }
      • Partager sur Facebook
      • Partager sur Twitter
        2 janvier 2008 à 17:43:03

        Ok ca marche

        Mais (car il y a toujours un mais ^^)

        J'ai voulu compliquer la chose, et ca ne marche que pour le premier if.
        De plus j'ai tenter de mettre un || (or), ca ne pose pas de probleme?

        1. this.onRelease = function(){
        2.     if(this._currentFrame == 36||37){
        3.                 _root.gotoAndStop("toto");
        4.                 _root.txt1.gotoAndPlay("tata");
        5.         }
        6.     else if(this._currentFrame == 86||87){
        7.                 _root.gotoAndStop("tonton");
        8.                 _root.txt1.gotoAndPlay("tata");
        9.     }
        10. }


        Merci de nouveau :)
        • Partager sur Facebook
        • Partager sur Twitter
          2 janvier 2008 à 18:14:33

          Salut.

          Logique.

          Il faut récrire this._currentFrame == 37. et non juste 37. Sinon il cherche si this._currentFrame == 36 est vérifié, ou si 37 est vérifié. Comme 37 n'est pas égal à 0 (0 est l'équivalent du booléen false), alors pour lui 37 est vrai (true). Conclusion, ta première condition est toujours vraie et s'exécute donc. :)

          Le code corrigé :

          1. this.onRelease = function()
          2. {
          3.         if (this._currentFrame == 36 || this._currentFrame == 37)
          4.         {
          5.                 _root.gotoAndStop("toto");
          6.                 _root.txt1.gotoAndPlay("tata");
          7.         }
          8.         else if (this._currentFrame == 86 || this._currentFrame == 87)
          9.         {
          10.                 _root.gotoAndStop("tonton");
          11.                 _root.txt1.gotoAndPlay("tata");
          12.         }
          13. }


          @+
          • Partager sur Facebook
          • Partager sur Twitter
            2 janvier 2008 à 18:16:44

            Dans l'utilisation d'un if(), il faut mettre en les parenthèses une expressions qui a pour valeur True ou False (vrai ou faux)
            quand tu écrit :
            1. if(this._currentFrame == 36)

            Flash évalue l'expression :
            1. this._currentFrame == 36

            Si _currentFrame est égal à 36, alors il renvoi True sinon il renvoi False.

            Quand tu écrit :
            1. this._currentFrame == 36||37

            flash y voit 2 expressions séparées par l'opérateur logique '||' pour lui c'est donc équivalent à :
            1. (this._currentFrame == 36) || (37)

            Pour Flash un nombre différent de 0 est équivalent à un True donc ta condition if sera toujours vrai (à cause du 37) donc le else ne sera jamais executé.
            Pour faire ce que tu veux il faut écrire :
            1. this._currentFrame == 36 || this._currentFrame == 37


            Bonne continuation ++
            • Partager sur Facebook
            • Partager sur Twitter
              2 janvier 2008 à 18:32:04

              Maintenant il ne se passe plus rien lool :-°

              lol...

              (oui j'ai bien verifié les numeros d'images)

              C'est possible de remplacer le n° d'image par un nom d'étiquette dans le code? :o
              C'est peux etre du à cela (on sais jamais lol)
              • Partager sur Facebook
              • Partager sur Twitter
                2 janvier 2008 à 19:11:03

                Citation : lui

                C'est possible de remplacer le n° d'image par un nom d'étiquette dans le code? :o


                A ma connaissance non (et après une courte recherche toujours non ^^)
                Sinon il est possible que ton erreur viene du 'this.'
                1. this.onRelease = function(){
                2.     if (this._currentFrame == 36){
                3.         _root.gotoAndStop("toto")
                4.     }
                5. }

                Si ton code est situer sur le scène principale :
                Le premier 'this' désigne cette scène.
                Le deuxieme 'this' étant situé dans la fonction que s'exécute lors de l'évènement onRelease, celui ci désigne ton bouton.
                Donc quand tu clic sur ton bouton si la tête de lecture à l'intérieur de celui-ci est sur l'image 37 alors le if() est validé.

                Si tu veux au contraire travailler avec la tête de lecture de ta scène tu peut par exemple faire comme cela :
                1. this.onRelease = function(){
                2.     if (this._parent._currentFrame == 36){
                3.         _root.gotoAndStop("toto")
                4.     }
                5. }
                • Partager sur Facebook
                • Partager sur Twitter
                  3 janvier 2008 à 11:26:17

                  J'ai trouver !!!

                  Merci heero78 tu m'as mis sur la bonne piste. ^^

                  En fait ce n'étais pas _parent mais _level qu'il fallait mettre, vu que j'étais "enfoncer" dans plein de symboles :p

                  Bref ça roule niquel.

                  Merci beaucoup !!!
                  • Partager sur Facebook
                  • Partager sur Twitter

                  [Flash] Condition par rapport au n° d'image de la timeline

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown