Transformer une expression (string) en variable

dogann Messages postés 8 Date d'inscription dimanche 1 février 2004 Statut Membre Dernière intervention 21 mai 2007 - 24 mai 2005 à 16:23
dogann Messages postés 8 Date d'inscription dimanche 1 février 2004 Statut Membre Dernière intervention 21 mai 2007 - 29 mai 2005 à 12:25
Salut,



J'ai une variable "nom" dans un fichier texte qui me sert de légende pour mon petit diaporama dynamique.

Dans mon fichier texte j'ai :

nom1= "paysage de montagne"&nom2="jolie fleur"&nom3="le chat du quartier"...



Dans mon animation, j'ai mis un champ texte "legende" sous la photo,
qui charge les variables du fichier texte. Lorsque je clique sur le
bouton "suivant" j'incrémente 1 au compteur "count".

Alors je voulais faire legende=nom+count pour qu'il m'affiche dynamiquement la bonne légende en fonction du compteur.



Mais ça ne marche pas, il cherche à ajouter la variable nom + la
variable count ce qui fait 0+1 (donc 1 s'affiche) puis 0+2 (donc 2
s'affiche) et ainsi de suite.

Si je mets des guillemets j'ai le problème inverse, il concatène
"nom"+"count" et le champ legende affiche alors "nom1", mais pas le
contenu de la variable nom1 comme je voudrais (paysage de montagne).



Comment transformer l'expression "nom1" en variable nom1 ?



Merci,



Dogann

6 réponses

funghi Messages postés 186 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 3 janvier 2011
24 mai 2005 à 16:50
salut !!
essaie de faire un truc du genre : value(taVariable); =>ca devrait transformer ta chaine de caractere en variable
Bon courage,
Funghi
0
dogann Messages postés 8 Date d'inscription dimanche 1 février 2004 Statut Membre Dernière intervention 21 mai 2007
24 mai 2005 à 17:14
Salut Funghi,



En faisant comme ça :

contenu="nom"+count //count est mon compteur

value(contenu);

legende=contenu; //ou legende est mon champ texte dynamique



il m'affiche alors "nom1" puis "nom2" dans le champ texte, et m'envoie
un "undefined" en trace. Il n'a donc pas fait le lien avec ma variable
dans le fichier texte.

Pourtant lorsque j'écris tout simplement :

legende=nom1

il m'affiche bien le contenu de nom1, à savoir "photo de montagne".
0
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
24 mai 2005 à 18:07
essaye avec :

contenu = this["nom"+1];

c'est ce qu'on appelle un appel dynamique. "Value" ne fonctionne qu'avec des appels dynamiques multiples, ou alors en Flash 5, mais plus depuis MX.

Peg'
0
dogann Messages postés 8 Date d'inscription dimanche 1 février 2004 Statut Membre Dernière intervention 21 mai 2007
25 mai 2005 à 10:46
Peg,



Ca ne marche pas non plus. Je suis effectivement sous MX. Trace me donne un "undefined".

J'ai pensé à une autre possibilité : déclarer directement un tableau
dans mon fichier texte, et faire appel à une case du tableau. Mais
comment mettre de l'actionscript pris en compte par l'anim dans mon
fichier texte ? Si je mets une déclaration de tableau standard, tout ce
qui est après le signe = devient du texte pour l'anim, et non pas du
code actionscript.



Encore bloqué.
0

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

Posez votre question
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
25 mai 2005 à 11:01
Tu ne peux pas créer de tableau dans un fichier txt, juste créer des variables ...
Mais il m'est avis que tu appelles mal tes variables, est-ce que tes variables "Nom1" et "Contenu" sont au même niveau ? Dans le même clip ?

Peg'
0
dogann Messages postés 8 Date d'inscription dimanche 1 février 2004 Statut Membre Dernière intervention 21 mai 2007
29 mai 2005 à 12:25
Salut Peg !



Merci pour ta réponse. Je suis un peu lent à répondre, j'étais occupé.

Oui, mes variables Nom1 et contenu sont bien au même niveau, mais pas
dans un clip. Elles sont directement sur la timeline principale. Je les
mets dans mes fonctions de bouton. Un bouton pour aller en avant et
passer à l'image suivante. Un bouton pour aller en arrière et revenir à
l'image précédente.

Voici le code : Ce code est sur ma timeline.

Après, sur ma scène, j'ai un clip (cible1) qui s'occupe de faire le redimensionnement des images automatiquement.





i=0;

loadVariablesNum(path+i+"/text.txt", 0);

loadVariablesNum(path+i+"/title.txt", 0);

loadVariablesNum(path+i+"/pictures.txt", 0);

loadVariablesNum(path+i+"/boutons.txt", 0);



//initialisation des variables

var count = 0

//row = 0;

_global.endOfList = false;

rootRef = this;

function loadImage(count)

{ //début de la fonction loadImage

//count++;

fileExists = new LoadVars();

fileExists._parent =rootRef;

fileExists.onLoad = function(success)

{ //début de la fonction success

if (success)

{ //début if success


//var tempClip = this._parent.createEmptyMovieClip("swfHolder"+count,
0);

// tempClip._x = 30;

//tempClip._y = 70;

cible1.loadMovie(file2Load);

//trace ("chargement ok");

} //fin if success

else

{ //debut else sucess

count=0;

trace ("merdasse");

}; // fin else sucess

} //fin fonction success

file2Load = path+i+"/image"+count+".jpg";

fileExists.load(file2Load);

} //fin fonction Loadimage



//---------------------------



//on charge déjà la première photo

count++

loadImage(count);



//action du bouton 1

button1.onRelease=function(){

count++

loadImage(count)

//contenu= this["nameimage"+1];

contenu=nameimage[count];

titreimage=contenu; // C'EST ICI MON PROBLEME !! titreimage
est mon champ texte et nameimage est le nom "minimal" de mes variables.
Mes variables qui sont chargées au début du fichier "pictures.txt",
sont nameimage1, nameimage2... où le chiffre à la valeur de count (mon
compteur).

//this["nameimage"+count];

trace (nameimage);

}

//action du bouton 2

button2.onRelease=function(){

count--

loadImage(count)

titreimage=nameimage[count];

}



stop();
0
Rejoignez-nous