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 :

fonction exécutée qu'une seule fois (alors qu'elle devrait pas)


Sujet :

Flash

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 30
    Points
    30
    Par défaut fonction exécutée qu'une seule fois (alors qu'elle devrait pas)
    salut.
    J'ai un bout de code dans lequel j'ai une fonction qui ne s'exécute qu'une seule fois. 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
     
    trackball.drag.onPress=function() {
        _global.dragging = true;
        _global.oldX = _xmouse;
        _global.oldY = _ymouse;
    }
     
    //visualisation
    trackball.onEnterFrame = function() {
    trace("drag"+_global.dragging);
    for (j=1; j<_global.tableau.length; j++) {
        switch (_global.tableau[j][0]) {
            case "viewer_prix" :
                var_nom = "elt"+j+"_";            
                nom_fg="filg"+j+"_";
                nom_fd="fild"+j+"_";
                const_rect(_global.tableau[j], var_nom,nom_fg,nom_fd);
                break;
            case "viewer_priy" :
                var_nom = "elt"+j+"_";
                nom_fg="filg"+j+"_";
                nom_fd="fild"+j+"_";
                const_rect(_global.tableau[j], var_nom,nom_fg,nom_fd);
                break;
            }}}
    Il entre ds la fonction const_rect que voici :
    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
     
    const_rect = function (tab, nom,nom_fg,nom_fd) {
     
            trace("test"+_global.dragging);
        const_fil(tab[3], nom_fg,"0x000000");
        const_fil(tab[4], nom_fd,"0x000000");
         if (_global.dragging==true) {
            dx = _xmouse-_global.oldX;
            dy = _ymouse-_global.oldY;
            _global.oldX = _xmouse;
            _global.oldY = _ymouse;
            trace("zob");
            trace("dx"+dx);
            groupRotateX(tab[1],0- dy);
            groupRotateX(tab[2],0- dy);
            groupRotateY(tab[1],0- dx);
            groupRotateY(tab[2],0- dx);
        }
    }
    après recherches plus poussées, il apparaît que
    [code]
    for (j=1; j<_global.tableau.length; j++)
    tourne en boucle grace au onEnterFrame (vérifié avec des trace de j). C'est ce que je veux qu'il fasse, ca tombe bien! Par contre avec le meme systeme de trace, j'ai vérifié qu'il n'executait la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    const_rect(_global.tableau[j], var_nom,nom_fg,nom_fd);
    qu'une seule fois, et c'est là que le bas blesse. Je sais pas pourquoi!!!! qqu'un a-t'il une idée svp?

    De plus, j'aimerais savoir si c'est possible de ne déclencher la boucle for qu'a partir du moment ou ma souris est au dessus du clip trackball. Si qqu'un a des pistes pour m'aider, je lui en serai gré, merci

  2. #2
    Membre émérite Avatar de dom_dev
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 073
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 073
    Points : 2 338
    Points
    2 338
    Par défaut
    bonjour,

    une idée comme ça...

    es-tu sur que la fonction n'est executée qu'une fois ou que la fonction ne fait pas N fois la même chose ??


  3. #3
    Nouveau membre du Club
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 30
    Points
    30
    Par défaut
    Je suis sur qu'elle ne s'exécute qu'une seule fois, car je mets un trace dans ma boucle for qui m'affiche la valeur de j en boucle, et je mets un trace dans ma fonction qui ne s'affiche que la premiere fois.

  4. #4
    Membre émérite Avatar de dom_dev
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 073
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 073
    Points : 2 338
    Points
    2 338
    Par défaut
    bonjour,

    as-tu remplacé "_global.tableau.length" par une valeur numérique ?

    sinon je ne vois pas

  5. #5
    Nouveau membre du Club
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 30
    Points
    30
    Par défaut
    je viens d'essayer, ca ne change rien.

  6. #6
    Membre émérite Avatar de dom_dev
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 073
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 073
    Points : 2 338
    Points
    2 338
    Par défaut
    hi,

    je pense à un dernier "truc" tu n'as pas mis d'instruction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    default:
       trace ("defaut ou erreur");
    à la fin de ton "switch-case"

    ça peut te permettre de "lever" un bug...

  7. #7
    Nouveau membre du Club
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 30
    Points
    30
    Par défaut
    ah oui c'est vrai je l'avais oublié, mais il ne s'affiche pas, donc je suppose que mon switch-case est correct

  8. #8
    Membre émérite Avatar de dom_dev
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 073
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 073
    Points : 2 338
    Points
    2 338
    Par défaut
    normalement oui, "il" n'a pas le choix c'est ou tes variables ont une valeur correcte et la fonction s'execute ou les deux sont "incorrectes" et le "default" s'execute. Donc pour le moment je cale comme toi !

  9. #9
    Nouveau membre du Club
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 30
    Points
    30
    Par défaut
    Bon j'ai résolu le problème. Je sais pas si c'est bien orthodoxe, mais bon, l'essentiel c'est que ca boucle. En fait j'ai rajouté un gotoAndPlay de ma frame courante a la fin de mon onEnterFrame et donc bah il boucle. Merci de ton aide en tt cas.
    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
     
    //visualisation
    trackball.onEnterFrame = function() {
    trace("drag"+_global.dragging);
    for (j=1; j<_global.tableau.length; j++) {
        switch (_global.tableau[j][0]) {
            case "viewer_prix" :
                var_nom = "elt"+j+"_";            
                nom_fg="filg"+j+"_";
                nom_fd="fild"+j+"_";
                const_rect(_global.tableau[j], var_nom,nom_fg,nom_fd);
                break;
            case "viewer_priy" :
                var_nom = "elt"+j+"_";
                nom_fg="filg"+j+"_";
                nom_fd="fild"+j+"_";
                const_rect(_global.tableau[j], var_nom,nom_fg,nom_fd);
                break;
            }}
    gotoAndPlay(2);
    }

Discussions similaires

  1. Fonction avec getopts ne s'exécute qu'une seule fois
    Par yzoug dans le forum Shell et commandes GNU
    Réponses: 9
    Dernier message: 02/03/2015, 13h44
  2. La fonction "getElementById('x').value" ne s'exécute qu'une seule fois ?
    Par Hello_World dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 21/10/2010, 16h51
  3. Réponses: 38
    Dernier message: 02/11/2009, 19h20
  4. Fonction js lancée une seule fois avec setInterval
    Par stephnane dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 02/08/2007, 23h03
  5. fonction qui s'exécute qu'une seule fois sous Firefox
    Par la.sophe dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 01/03/2006, 11h02

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