Concaténer dans function()

kylling Messages postés 20 Date d'inscription lundi 6 septembre 2004 Statut Membre Dernière intervention 8 décembre 2006 - 12 déc. 2004 à 23:56
kylling Messages postés 20 Date d'inscription lundi 6 septembre 2004 Statut Membre Dernière intervention 8 décembre 2006 - 15 déc. 2004 à 13:54
Salut à tous. Recemment, je postais sur ce forum un message pour connaitre la syntaxe pour concaténer correctement un nom d'occurence et une variable : this["fenetre"+numfenetre]._alpha = 0; dans la partie // Masquer toutes les fenêtres

Aujourd'hui, mon nouveau problème, c'est de réussir à comprendre pourquoi cette même syntaxe ne fonctionne plus dans la fonction et comment remédier à ce problème.
Mon code source est en dessous. Et merci d'avance à tous ceux qui pourront m'aider.

// Masquer toutes les fenêtres
numfenetre = 0;
while (numfenetre<65) {
//trace(numfenetre);
this["fenetre"+numfenetre]._alpha = 0;
numfenetre++;

function court() {
// Les lumières s'allument dans la ville
choixNbr = (Math.ceil(Math.random()*65));
this["fenetre"+choixNbr]._alpha = 60;
trace("choixNbr : "+choixNbr);
}

setInterval(court, 1000);

6 réponses

ozitoun Messages postés 115 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 25 mars 2008
13 déc. 2004 à 09:36
tu as oublié de fermer ton premier while... voi ci dessous c'est mieux :
// Masquer toutes les fenêtres
numfenetre = 0;
while (numfenetre<65) {
//trace(numfenetre);
this["fenetre"+numfenetre]._alpha = 0;
numfenetre++;
}

function court() {
// Les lumières s'allument dans la ville
choixNbr = (Math.ceil(Math.random()*65));
this["fenetre"+choixNbr]._alpha = 60;
trace("choixNbr : "+choixNbr);
}

________________________
Zitoun
:-p
0
individis-bis Messages postés 293 Date d'inscription vendredi 26 septembre 2003 Statut Membre Dernière intervention 25 septembre 2008
13 déc. 2004 à 12:17
Utilise une boucle for... in...

Regarde l'aide flash...

Patrice Gobert
Ingénieur Electronique
Formateur Informatique
0
kylling Messages postés 20 Date d'inscription lundi 6 septembre 2004 Statut Membre Dernière intervention 8 décembre 2006
13 déc. 2004 à 15:27
Déjà, je suis désolé, j'ai mal copié collé mon code, dans mon code j'ai bien refermé ma boucle while...

Sinon pour 'for... in...' Je ne comprend pas ce que ça change par rapport à while !
Surtout que le programme tel qu'il est là fonctionne.
Dans ma boucle 'while' il masque les 65 clips spécifiés et dans 'function court()' il me sort bien un nombre aléatoire qu'il stocke dans la variable choixNbr qu'il retourne sur la fenêtre de sortie (trace).

Le problème est dans cette syntaxe :
this["fenetre"+choixNbr]._alpha = 60;

(fenetre est un nom d'occurence) > j'ai pensé que le problème était similaire à l'histoire des 'variable globales' qui sont reconnues ou non dans les fonctions. Ici ma fonction empeche de communiquer avec mon clip fenetre...
0
individis-bis Messages postés 293 Date d'inscription vendredi 26 septembre 2003 Statut Membre Dernière intervention 25 septembre 2008
13 déc. 2004 à 16:02
Si tu l'utilises bien, ca changera dans le sens que tu pourra avoir avoir un nombre de fenetre non défini par avance...

this["fenetre"+choixNbr] <--- cette partie est une valeur pas une propriété...

Patrice Gobert
Ingénieur Electronique
Formateur Informatique
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
John_Doe_88 Messages postés 606 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 13 décembre 2006
14 déc. 2004 à 02:32
En cherchant bien g trouvé que (Math.ceil(Math.random()*65) c pas tout a fait exact parce que ça peut donner 65, ce qui n'est pas une numéro valide dans ton cas. Donc plutot floor que ceil. Mais c vraiment pour les détails parce que ça changera rien.

Sinon je vois pas... Tu peux toujours essayer de remplacer tes this par le chemin exact du style _root.le_clip_ou_tu_es["fenetre"..] mais théoriquement ça devrait rien changer...
0
kylling Messages postés 20 Date d'inscription lundi 6 septembre 2004 Statut Membre Dernière intervention 8 décembre 2006
15 déc. 2004 à 13:54
Salut et merci à tous pour votre aide.
J'ai fini par trouver la solution à mon problème.
C'était bien la ligne
 this["fenetre"+choixNbr] 
qui posait problème.
Je l'ai remplacée par
 eval("fenetre"+choixNbr) 
et ça fonctionne.

(pour ceux qui rencontreraient la même problème !)

A bientôt
0
Rejoignez-nous