Valeurs chargées dans une boucle for... [Résolu]

Messages postés
15
Date d'inscription
jeudi 17 juillet 2003
Statut
Membre
Dernière intervention
1 octobre 2010
- - Dernière réponse : boumboumboba
Messages postés
15
Date d'inscription
jeudi 17 juillet 2003
Statut
Membre
Dernière intervention
1 octobre 2010
- 22 oct. 2005 à 10:41
Bonjour...

Voila, j'ai un petit souci qui commence à me donner pas mal de cheveux blancs depuis le temps que je cherche à comprendre...

si qqun pouvait m'aider, ça me rallongerait mon espérance de vie! :-)



je dois charger des valeurs appellées contenu0, contenu1, contenu2...

Je sais que vous allez trouver ça idiot mais chacune de ces valeurs est
dans un un fichier txt séparé (texte0.txt, texte1.txt, texte2.txt)



je me suis dit que j'allais être malin et faire ça dans une boucle for:



textes = new Array();

for (var i:Number = 0; i<3; i++) {

var fichierCharge = "texte"+i;

var monLoadVarActuel = "monLoadVar"+i;

monLoadVarActuel = new LoadVars();


monLoadVarActuel.load("content_fr/"+niveau+"_"+page+"_"+"texte"+i+".txt");
// le chemin pour les fichiers txt

monLoadVarActuel.onLoad = function(success) {

trace("je la
pointe normalement :"+this.contenu0); //ici il m'affiche la valeur)

var contenuActuel = this["contenu"+i];

trace("je la
pointe avec une variable :"+contenuActuel); // ici elle est undefined

textes.push(contenuActuel);

trace("tableau
:"+textes); //il s'affiche mais tous les éléments en sont undefined

};

}







comme je l'ai mis en commentaires...

qd je lui demande "en dur" de m'afficher par exemple "contenu0" puisque dans texte0.txt, il y a:

contenu0=blah blah blah blah blah blah blah



il le fait. mais qd je me sert de la variable i pour le pointer:

this["contenu"+i]

il ne veut paaaaaaaaaaaaaaas!

comprends pas... comprends pas...



C'est du code pas bien écrit et je ne sais pas si je suis très clair
dans mes explications, mais si l'un de vous pouvait me donner un coup
de main ce serait zuper-génial!!!!

Déjà Merci!
Afficher la suite 

10 réponses

Meilleure réponse
Messages postés
1637
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
21 février 2011
2
3
Merci
Salut

il faut que tu creer un
LoadVars par fichiers, car la boucle est executé en un instant, alors
que le onLoad (chargement effectué) des LoadVars sont appelé X secondes
apres appel de load (le temps de chargement)

donc créer autant de loadVars que de texte, car sinon vu qu'il on tous
le mm nom, le dernier de la boucle supprime tout les autre loadvars.


Flash sans Limites
_Benjy chez kOlapsis

merci de penser a accepter

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 206 internautes nous ont dit merci ce mois-ci

Commenter la réponse de _benjy
Messages postés
236
Date d'inscription
mercredi 2 avril 2003
Statut
Membre
Dernière intervention
29 mars 2011
3
Merci
Et il n'y a pas que ça, le "i" dans le onLoad ne siginifie plus rien du tout (la boucle for est finit depuis longtemps)

^^

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 206 internautes nous ont dit merci ce mois-ci

Commenter la réponse de slagt
Messages postés
15
Date d'inscription
jeudi 17 juillet 2003
Statut
Membre
Dernière intervention
1 octobre 2010
0
Merci
hello Benjy... merci pour ton post...



mais tu es sur que c une question de temps de chargement?

j'a fait un trace pour voir si qd je localise la variable sans que se soit "dynamique" (je veux dire this.contenu0 et non pas this["contenu"+i] ) il me l'affiche correctement...

J'ai essayé plusieurs fois de changer la variable demandée et il me la trouve à chaque fois.



donc, je crois que les valeurs sont là....

J'ai l'impression que c juste un prob de synthaxe...

Comment faire pour que ce satané trace(this["contenu"+i]) m'affiche la valeur du .txt?



Alalalalaaaaaa! Pourquoi tant de haine?

Encore merci !
Commenter la réponse de boumboumboba
Messages postés
15
Date d'inscription
jeudi 17 juillet 2003
Statut
Membre
Dernière intervention
1 octobre 2010
0
Merci
Hello Slagt...



je ne vois pas ce que tu veux dire? Finie depuis longtemps?

Je continue à checker... :-)
Commenter la réponse de boumboumboba
Messages postés
1637
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
21 février 2011
2
0
Merci
Salut

ben moi j'te dis qu'elle sont pas là ... mais bon si tu pref TE croire pourquoi poser la question ?

Flash sans Limites
_Benjy chez kOlapsis

merci de penser a accepter
Commenter la réponse de _benjy
Messages postés
15
Date d'inscription
jeudi 17 juillet 2003
Statut
Membre
Dernière intervention
1 octobre 2010
0
Merci
olala mais faut pa le prendre comme ça mon p'tit gars...



Je disais juste que ce ne doit pas être simple de tomber sur des bouts de codes d'utilisateurs un peu paumés comme moi.

Je me disais ausii (petre un peu bêtement) que ce que tu aurais pu me
repondre aurait pu m'aider à comprendre comment ça marche et en
attendant ta reponce je faisais un essai dans ton sens.



Mais bon... t'as l'air pas content, je ne voulais pas que tu te sentes insulté.

Si tu veux, ne lis plus jamais aucune de mes questions. Je comprendrai.
Commenter la réponse de boumboumboba
Messages postés
1637
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
21 février 2011
2
0
Merci
Salut

mais nan no prob de mon coté... juste commence par faire ce que je t'ai dis en premier et ca marchera

++

Flash sans Limites
_Benjy chez kOlapsis

merci de penser a accepter
Commenter la réponse de _benjy
Messages postés
15
Date d'inscription
jeudi 17 juillet 2003
Statut
Membre
Dernière intervention
1 octobre 2010
0
Merci
Kooool...



En fait, je crois que je m'attaque à un truc trop balèze pour moi :-(

J'ai cherché à faire une 2éme boucle loadVars mais j'ai pas reussi à faire un truc qui marche...

Puis j'ai rejetté un oeil sur la première version du code et j'ai vu que j'avais mis ça dans la boucle

var monLoadVarActuel = "monLoadVar"+i;

monLoadVarActuel = new LoadVars();



C'est vraiment une question, je ne suis pas sur de moi du tout ;-)
: ces 2 lignes là ne devraient pas créer plusieurs loadVars?
(monLoadVar0, monLoadVar1, monLoadVar2...)



Comprends plus rien! vais refaire du Basic, ça c top-koool! ;-)
Commenter la réponse de boumboumboba
Messages postés
1637
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
21 février 2011
2
0
Merci
Salut

fais plutot :
textes = new Array();

for (var i:Number = 0; i<3; i++) {

var fichierCharge = "texte"+i;

this["monLoadVar"+i] = new LoadVars();

this["monLoadVar"+i].load("content_fr/"+niveau+"_"+page+"_"+"texte"+i+".txt");
// le chemin pour les fichiers txt

this["monLoadVar"+i].index = i;


this["monLoadVar"+i].onLoad = function(success) {

textes.push(this["contenu"+this.index]);

};
}



parcour du tableau :

var i = 0;

var count = textes.length;

while (i<count){

trace (textes[i]);


}



Flash sans Limites
_Benjy chez kOlapsis

merci de penser a accepter
Commenter la réponse de _benjy
Messages postés
15
Date d'inscription
jeudi 17 juillet 2003
Statut
Membre
Dernière intervention
1 octobre 2010
0
Merci
Zuper! Merci beaucoup Benjy! J'essaye ça fissa!



Graccie Mille!
Commenter la réponse de boumboumboba