En parlant d'Eval... - Flash/ActionScript - Programmation
Marsh Posté le 30-03-2005 à 11:03:11
symbole.label1.text=_root[curage];
et pour test :
Code :
|
Marsh Posté le 30-03-2005 à 11:22:17
Salut Mala,
apparement ca marche pas:
Code :
|
me renvoit:
|
Marsh Posté le 30-03-2005 à 11:29:19
c'est celaaaa ouiiiii ..
et la ligne "var i=1;" elle est partie en vacances ?
Marsh Posté le 30-03-2005 à 11:38:18
voila le code corrigé:
Code :
|
il fallait mettre this.vname et pas vname
Merci Mala
Marsh Posté le 30-03-2005 à 11:50:25
non pas spécialement ...
L'exemple que je t'ai donné fonctionne tel quel ...
Dans le code que tu as "corrigé", où est l'initialisation de ta variable i ???
Marsh Posté le 30-03-2005 à 11:51:55
Au fait ca marche quand on fait une affectation a l'interieur du code comme ici:
Code :
|
ca marche!
Mais moi je veux lire une valeur dans un fichier texte et pour lui:
Code :
|
vaut undifined!!!
alors que:
Code :
|
J y comprend plus rien!
Marsh Posté le 30-03-2005 à 11:53:13
remarque c'est pitetre normal si root est le clip et pas le fichier loggé?
Marsh Posté le 30-03-2005 à 11:58:29
heuuu ouais enfin ça dépend où tu charges ton fichier de variable ! .. dans la _root ?
heuuu et puis
Code :
|
... il n'y a pas un truc qui te choque là ?
Marsh Posté le 30-03-2005 à 12:02:12
dans une fonction onload dans mon script principal:
voila le code:
Code :
|
Marsh Posté le 30-03-2005 à 12:15:18
le this._root[curage]
This de root c'est pas bon c'est ca?
Au fait ce que je cherche c'est recuperer:
age1
age2
age3
.
.
.
ageN
donc je suis obliger de faire un root pour ("age"+i)
Marsh Posté le 30-03-2005 à 12:29:55
PETOZAK a écrit : donc je suis obliger de faire un root pour ("age"+i) |
Ton age[1->N] sont des variables chargées dans l'objet LoadVars courant !
Tu le montres toi-même par ton "trace(this.age2);" !
Donc, si tu as en _root une variable 'age1' que tu construit dynamiquement en faisant curage="age"+1; et que tu vas chercher, en étant dans la _root, en faisant "_root[curage]" ...
Donc, si maintenant, tu te trouves dans 'this' et que ta variable est dans 'this' et que tu construis le nom de ta variable dynamiquement dans 'this' ( dans le cas présent, 'this' étant ton objet LoadVars ), tu vas donc la chercher par ........ ???
Marsh Posté le 30-03-2005 à 13:09:29
Ben oui !
Tu patauges dans un marais de '_root' et de 'this' sans même te poser la question de l'endroit exact où se trouvent tes variables !
Alors je vais une fois de plus répèter :
this._root[this.curage]
CA, ça te semble cohérent ?
Où se trouve la variable dont le nom est contenu dans 'curage' ???
Marsh Posté le 30-03-2005 à 13:24:29
curage="age"+i;
se trouve dans fichier texte:
exemple:
&age1=22&age2=25&age3=35&age4=40&age5=60
this.age1 me renvoit 22
le code que j'ai collé tout a l'heure est dans le calque action1
Je ne connais pas du tout le fonctionnement de root!
J'espere que c'est suffisant?
Marsh Posté le 30-03-2005 à 13:45:51
Bon .. ben on va reprendre depuis le début ...
Tu crées un objet LoadVars ( txt )
Et tu appelles sa fonction load("brol.txt" );
Toutes les variables chargées de brol.txt seront DANS cet objet LoadVars.
Dans la gestion de l'évènement onLoad(), tu te trouves implicitement DANS cet objet LoadVars !
Donc, toutes les références à des variables contenues dans cet objet dans le onLoad() se feront par this.nomDeLaVariable
Donc, si tu charges une variable 'age1', dans le onLoad de ton objet LoadVars, tu y accèderas par this.age1
Si tu crées une "variable dynamique" this.curage dans le onLoad(), elle sera donc ..... ??? .. Dans l'objet LoadVars.
Si dans cette variable, tu mets "age"+N ( on va dire N=1 ) et que tu veux récupérer la valeur de la variable dont le nom est contenu dans this.curage ( donc, pour l'exemple, 'age1' ), tu feras comment pour récupérer sa valeur en considérant que, si la variable était dans la _root, tu ferais _root[curage] et que pour accéder à tes variables INTERNES à ton objet LoadVars, tu utilises this ???
La question est pourtant simple : où est la variable 'age1' ?
Je peux pas aller plus loin !!! Un cran de plus et je te donne la réponse toute cuite et toute mâchée !!
Marsh Posté le 30-03-2005 à 14:21:05
la variable age1 est dans le onload du loadvars() donc on utilise this normalement mais le prob c'est que l'on doit evaluer Age+i donc passer par root non?
this.curage ne marchant pas!
Marsh Posté le 30-03-2005 à 14:46:12
Mr Mala, je ne vois pas
et j 'ai d'autre truc a faire et pas en flash
donc je donne ma langue au chat
Marsh Posté le 30-03-2005 à 14:54:06
Bon j'abandonne ...
Toute façon, tu patauges avec les accès _root, this, .. etc
Je ne sais pas si c'est un truc que tu fais de ton plein gré ... mais avant de te lancer là-dedans, tu aurais dû apprendre les bases !
Regarde la ligne 12 .. elle est 'magique' !
Code :
|
Marsh Posté le 30-03-2005 à 14:58:47
merci mais je n'aurai jamais trouvé:
Cette syntaxe est completement nimp:
this[this.curage]
mais bon elle marche!!
Je te remercie d'y etre aller de maniere didactique mais il fallait me dire que this pouvait s'utiliser comme un tableau
Marsh Posté le 30-03-2005 à 15:05:27
PETOZAK a écrit : merci mais je n'aurai jamais trouvé: |
Marsh Posté le 30-03-2005 à 17:09:22
petite question subsidiaire:
UN fois sortie du onload (j'ai loadé mes valeurs dans txt.onLoad = function() )
Comment faire pour recuperer les valeurs de ces variables?
Code :
|
sachant que:
Code :
|
est dans txt.onLoad = function() et que je dois
les recuperer dans
Code :
|
Marsh Posté le 30-03-2005 à 10:57:58
Bonjour,
Voila je dois recuperer dans un fichir des valeurs particulieres voila un apercu:
nbitems=5
&image1=image1.jpg&image2=image2.jpg&image3=image3.jpg&image4=image4.jpg&image5=image5.jpg
&age1=22&age2=25&age3=35&age4=40&age5=60
Je connais le nombre d'items à l'avance ici 5,
Mon but est de recuperer ces valeurs et de creer autant d'instance qu'il y a d'items:
Ce que je n'arrive pas a faire c'est recuperer les valeurs du fichier texte de maniere dynamique:
ca marche!
Ca marche pas!!
Comment faire pour recuperer une variable au nom dynamique?