Click sur bouton "btn_n" -> afficher la variable "titre_n" d'un fichier texte

Résolu
cs_thessalie Messages postés 15 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 24 octobre 2005 - 9 mai 2005 à 11:27
cs_thessalie Messages postés 15 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 24 octobre 2005 - 16 mai 2005 à 16:37
Comment on peut faire ça ?

Mes pages sont constituées de séries de 6 boutons. Je voudrais qu'en appuyant sur le bouton btn_1, un movieclip se lance et affiche deux textes : l'un à partir de la variable titre1, l'autre à partir de la variable auteurs1 du même fichier texte.

Je sais qu'on peut s'en tirer en incrémentant un nombre n pour chaque bouton sur lequel on appuie (et en commençant par n+6 pour la page suivante, N+12 pour la suivante etc.), mais je préfèrerais une solution où le code irait directement chercher la valeur de "n" dans le nom d'occurence du bouton sur lequel on appuie. Est-ce possible ?

13 réponses

cs_djagger Messages postés 536 Date d'inscription lundi 5 mai 2003 Statut Membre Dernière intervention 29 janvier 2009 1
9 mai 2005 à 14:20
salut !
fo utiliser la fonction eval !

eval("titre"+n);

a+++
3
Prouprou_Sensei Messages postés 517 Date d'inscription mardi 23 décembre 2003 Statut Membre Dernière intervention 24 octobre 2006 1
15 mai 2005 à 18:45
Pout info tu t'y prend mal :

var i = 1;

titre_txt.htmlText = my_lv["titre"+i];



Et la ca fonctionne ! ;)


A tchao !
3
Prouprou_Sensei Messages postés 517 Date d'inscription mardi 23 décembre 2003 Statut Membre Dernière intervention 24 octobre 2006 1
16 mai 2005 à 12:02
for (var n = 0; n<7; n++) {

_root ["btn_"+n].i = n

_root ["btn_"+n].onRelease = function () {

_root.i = this.i;

nextFrame();

};

A tchao !
3
cs_thessalie Messages postés 15 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 24 octobre 2005
9 mai 2005 à 11:59
Sorry je n'arrive pas non plus à extraire la variable titre1 ou auteurs1. Si je fais "titre"+n+ comme avec un fichier externe ça ne marche pas. C'est dur les premiers pas... :)
0

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

Posez votre question
Prouprou_Sensei Messages postés 517 Date d'inscription mardi 23 décembre 2003 Statut Membre Dernière intervention 24 octobre 2006 1
9 mai 2005 à 15:46
Eval c'est un peu dépassé.

utilise plutot les crochets [];

Par exemple:

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

this.createEmptyMovieClip("clip"+i, i);

this["clip"+i]._x = 10*i; // this est l'emplacement
du clip si le clip est sur la racine il faudrait mettre :
_root["clip"+i]

}

A tchao !
0
cs_djagger Messages postés 536 Date d'inscription lundi 5 mai 2003 Statut Membre Dernière intervention 29 janvier 2009 1
9 mai 2005 à 15:56
eval c'est dépassé ? pourquoi ?
0
cs_djagger Messages postés 536 Date d'inscription lundi 5 mai 2003 Statut Membre Dernière intervention 29 janvier 2009 1
9 mai 2005 à 16:17
Re !



C'est peut-être dépassé, mais en tous cas, c'est plus rapide le eval !
0
Prouprou_Sensei Messages postés 517 Date d'inscription mardi 23 décembre 2003 Statut Membre Dernière intervention 24 octobre 2006 1
9 mai 2005 à 19:16
Lol ct pas pour t'emmerder que je disait ca, c'est juste que j'ai appris a flasher sur le MX et donc je suis pas habitué a voir eval dans un code, car il etait surtout utilisé dans flash4 et flash5.

A tchao !
0
cs_djagger Messages postés 536 Date d'inscription lundi 5 mai 2003 Statut Membre Dernière intervention 29 janvier 2009 1
10 mai 2005 à 09:24
lol ! y'a pas de pb ;)
c'est parceque j'ai fait des tests de rapidité, vaut mieux utiliser eval ;)
J'conaissais pas les crochets, mais ca aurait très bien pu être bcp plus rapide ;)

allé a ploussss !
0
cs_thessalie Messages postés 15 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 24 octobre 2005
15 mai 2005 à 18:37
Merci à tous, les deux méthodes ne renvoient pas les mêmes résultats. Dans mon fichier texte, prenons par exemple titre1=Chanson d'automne

1/ Avec la méthode Eval :
var i = 1
titre = eval("my_lv.titre"+i);
titre_txt.htmlText = titre;

Résultat : le texte affiché est Chanson d'automne

2/ Avec les crochets :
var i = 1
titre = ["my_lv.titre"+i];
titre_txt.htmlText = titre;

Résultat : le texte affiché est my_lv.titre1

Bilan, la fonction eval est quand même indispensable.
0
cs_thessalie Messages postés 15 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 24 octobre 2005
15 mai 2005 à 19:52
Ah ben oui, ça marche très bien. Pourquoi est-ce qu'on peut supprimer le "." entre my_lv et titre+i ?
0
cs_thessalie Messages postés 15 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 24 octobre 2005
16 mai 2005 à 01:17
Par ailleurs, c'est juste pour la beauté du geste mais je ne trouve toujours pas le code permettant d'attribuer la valeur n du btn_n que je presse à la variable i.

J'ai essayé à tout hasard :
for (var n = 0; n<7; n++) {
["btn_"+n]onRelease = function () {
i = n;
nextFrame();
};
> ça marche pas, et avec eval il me renvoie n7 quand je clique sur un des boutons.

Du coup j'ai écrit le code pour chaque bouton :
btn_1.onRelease = function() {
_root.i = 1
nextFrame();
}
Ca marche très bien mais c'est moins joli :)
Une idée ?
0
cs_thessalie Messages postés 15 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 24 octobre 2005
16 mai 2005 à 16:37
Ca marche nickel, merci !

Je vais finir par te dédicacer le site ;)
0