begin process at 2008 08 21 22:57:45
1 229 693 membres
501 nouveaux aujourd'hui
14 266 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : problème de variable [ Archives / ActionScript ] (astrolabbcracker)

problème de variable le 19/03/2006 19:13:26

astrolabbcracker
Bonjour et merci de lire ce message :
J'ai un problème pour créer des variables dans une boucle en utilisant la commande new Object ( car par la suite je devrais supprimer ces variables).

Voilà un exemple que je poste ici pour montrer mon problème, vous pouvez le recopier directement :
 lors de ma première boucle , je crée une variable testsinu["sinu"+j] or le j ne varie pas en fonction de la boucle si bien que pour la boucle suivante, on se retrouve avec une seule variable au lieu de 4 (et bien sur la dernière).

Comment dois-je ecrire la variable testsinu["sinu"+j] pour que le j change avec la boucle ?

  _root.ico9v3=4;
  _root.count=0;
  for (j=0; j<_root.ico9v3; j++) {
var testsinu:Object = new Object();
testsinu["sinu"+j] = count;
trace("score---"+testsinu["sinu"+j]);
count++;
            }
for (i=0; i<_root.ico9v3; i++) {
    trace("score2----"+testsinu["sinu"+i]);
    if(!testsinu["sinu"+i]){
        trace("il marche pas mon exemple");
    }
}
delete testsinu;
for (i=0; i<_root.ico9v3; i++) {
    trace("score2----"+testsinu["sinu"+i]);
    if(!testsinu["sinu"+i]){
        trace("il marche pas mon exemple");
    }
}

Merci de votre aide et @+


Re : problème de variable le 19/03/2006 19:38:48

cortoh
slt astrolabbcracker, dis moi, j'ai teste ton code, et ca trace :
score---0
score---1
score---2
score---3
... ou est le pb?

Peace From Mars
To All Human Beings


Re : problème de variable le 19/03/2006 20:15:29

astrolabbcracker
salut corto, je crois que tu vas être l'homme de la situation :

je vais simplifier le code ci dessus pour mieux m'expliquer :
          prenons :

  _root.ico9v3=4;
  _root.count=0;
  for (j=0; j<_root.ico9v3; j++) {
var testsinu:Object = new Object();
testsinu["sinu"+j] = count;
trace("score---"+testsinu["sinu"+j]);
count++;
            }
for (i=0; i<_root.ico9v3; i++) {
    trace("score2----"+testsinu["sinu"+i]);
    if(!testsinu["sinu"+i]){
        trace("il marche pas mon exemple");
    }
}


voilà ce qui est affiché quand je lance mon code :

score---0
score---1
score---2
score---3
score2----undefined
il marche pas mon exemple
score2----undefined
il marche pas mon exemple
score2----undefined
il marche pas mon exemple
score2----3

le problème c'est que si testsinu["sinu"+j]=0 ou 1 ou 2(résultat de la première boucle et prouvé le fait que score---0 score---1
score---2...
) ... ben testsinu["sinu"+j] existe donc à la boucle d'après :
                                                        if(!testsinu["sinu"+i]){
                                                        trace("il marche pas mon exemple");
                                                                                        }

ben ça ne devrait rien tracer (car testsinu["sinu"+j]=0...) et pas : il marche pas mon exemple, comme ça le fait actuellement : donc comme le code ne marche que pour le dernier mouvement de la boucle c'est que le "j" de testsinu["sinu"+j] ne tourne pas avec la boucle et que mon expression est comprise comme : testsinu["sinuj"]. Comment reformuler pour que quand je lance ce code, le résultat soit :

score---0
score---1
score---2
score---3
score2----0
score2----1
score2----2
score2----3



Merci corto de ton aide et @+




Re : problème de variable le 20/03/2006 11:04:39

cortoh
par quoi est defini testsinu["sinu"+i] ? je vois pas en quoi sa valeur est liee a j?

Peace From Mars
To All Human Beings


Re : problème de variable le 20/03/2006 12:55:09

astrolabbcracker
corto, j'ai trouvé la réponse, je la pose ce soir

Re : problème de variable le 20/03/2006 12:57:52

cortoh
j'suis trop fort! =)

Peace From Mars
To All Human Beings


Re : problème de variable le 21/03/2006 03:51:13

cortoh
la reponse! la reponse! la reponse!

Peace From Mars
To All Human Beings


Re : problème de variable le 21/03/2006 13:33:43

astrolabbcracker
Réponse acceptée !
voilà la réponse :
c'est bien ce que je pensais :
En utilisant l'expression : testsinu["sinu"+j] = count;  et bien j reste constant et est compris comme testsinu["sinu+j"] = count;  comme le montre l'exemple.

  _root.ico9v3=4;
  _root.count=0;
  for (j=0; j<_root.ico9v3; j++) {
var testsinu:Object = new Object();
testsinu["sinu"+j] = count;
trace("score---"+testsinu["sinu"+j]);
count++;
            }
for (i=0; i<_root.ico9v3; i++) {
    trace("score2----"+testsinu["sinu"+i]);
    if(!testsinu["sinu"+i]){
        trace("il marche pas mon exemple");
    }
}
delete testsinu;
for (i=0; i<_root.ico9v3; i++) {
    trace("score2----"+testsinu["sinu"+i]);
    if(!testsinu["sinu"+i]){
        trace("il marche pas mon exemple");
    }
}


Donc pour prendre en compte la boucle : j'ai transformé l'exemple ci dessus en :

_root.ico9v3=4;
  _root.count=1;
for (j=0; j<_root.ico9v3; j++) {
_root["testsinu"+j] = new Object();
_root["testsinu"+j].sinu = count;
trace("score---"+_root["testsinu"+j].sinu);
count++;
            }
for (i=0; i<_root.ico9v3; i++) {
    trace("score2----"+_root["testsinu"+i].sinu);
    if(!_root["testsinu"+i].sinu){
        trace("il marche pas mon exemple");
    }
}
for (i=0; i<_root.ico9v3; i++) {
    delete _root["testsinu"+i];
}
for (i=0; i<_root.ico9v3; i++) {
       if(!_root["testsinu"+i].sinu){
        trace("il marche super bien mon exemple");
    }
}

Ici, _root["testsinu"+j] change avec la boucle et cela me premet de supprimer les variables à la fin.




Classé sous : boucle, variable, trace, testsinu, sinu

Participer à cet échange

Pub



Appels d'offres

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS