afficher la variable "titre_n" d'un fichier texte" />

Click sur bouton "btn_n" -> afficher la variable "titre_n" d'un fichier texte [Résolu]

Signaler
Messages postés
15
Date d'inscription
lundi 10 janvier 2005
Statut
Membre
Dernière intervention
24 octobre 2005
-
cs_thessalie
Messages postés
15
Date d'inscription
lundi 10 janvier 2005
Statut
Membre
Dernière intervention
24 octobre 2005
-
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

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

eval("titre"+n);

a+++
Messages postés
517
Date d'inscription
mardi 23 décembre 2003
Statut
Membre
Dernière intervention
24 octobre 2006

Pout info tu t'y prend mal :

var i = 1;

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



Et la ca fonctionne ! ;)


A tchao !
Messages postés
517
Date d'inscription
mardi 23 décembre 2003
Statut
Membre
Dernière intervention
24 octobre 2006

for (var n = 0; n<7; n++) {

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

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

_root.i = this.i;

nextFrame();

};

A tchao !
Messages postés
15
Date d'inscription
lundi 10 janvier 2005
Statut
Membre
Dernière intervention
24 octobre 2005

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... :)
Messages postés
517
Date d'inscription
mardi 23 décembre 2003
Statut
Membre
Dernière intervention
24 octobre 2006

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 !
Messages postés
536
Date d'inscription
lundi 5 mai 2003
Statut
Membre
Dernière intervention
29 janvier 2009
1
eval c'est dépassé ? pourquoi ?
Messages postés
536
Date d'inscription
lundi 5 mai 2003
Statut
Membre
Dernière intervention
29 janvier 2009
1
Re !



C'est peut-être dépassé, mais en tous cas, c'est plus rapide le eval !
Messages postés
517
Date d'inscription
mardi 23 décembre 2003
Statut
Membre
Dernière intervention
24 octobre 2006

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 !
Messages postés
536
Date d'inscription
lundi 5 mai 2003
Statut
Membre
Dernière intervention
29 janvier 2009
1
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 !
Messages postés
15
Date d'inscription
lundi 10 janvier 2005
Statut
Membre
Dernière intervention
24 octobre 2005

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.
Messages postés
15
Date d'inscription
lundi 10 janvier 2005
Statut
Membre
Dernière intervention
24 octobre 2005

Ah ben oui, ça marche très bien. Pourquoi est-ce qu'on peut supprimer le "." entre my_lv et titre+i ?
Messages postés
15
Date d'inscription
lundi 10 janvier 2005
Statut
Membre
Dernière intervention
24 octobre 2005

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 ?
Messages postés
15
Date d'inscription
lundi 10 janvier 2005
Statut
Membre
Dernière intervention
24 octobre 2005

Ca marche nickel, merci !

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