Lecture d'un tableau loadé

nicosse Messages postés 24 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 29 décembre 2005 - 11 janv. 2005 à 10:53
nicosse Messages postés 24 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 29 décembre 2005 - 11 janv. 2005 à 18:25
salut, j'ai bricolé un petit code pour faire défiler les données d'un tableau (d' un txt loadé) dans un champ de texte sous FLASH MX.


Pour cela j'ai pris trois frames de la timeline et j'ai rentré :


Frame 1 :


var curNews = 0;
var messages_pmv = new Array();
i = 0


texte = new LoadVars();
texte.load("messages_pmv.txt");
texte.onLoad = function (success)
{
for (e in this)
{
messages_pmv[i] = this[e];
i += 1;
}
messages_pmv.pop();
messages_pmv.reverse();
}


Frame 2 :


pmv.html = true;
pmv.htmlText = messages_pmv[curNews];
curNews += 1;


Frame 3 :


if (curNews >= messages_pmv.length)
{
curNews = 0;
}
gotoAndPlay(2);


Le résultat est pas mal, sauf qu'à l'affichage le premier "tour" effectué par Flash ne m'affiche pas la variable 1 sur mon champ de texte, mais un beau 'UNDEFINED' très moche et je comprends pas pourquoi.... ensuite il lit normalement chaque variable puis reprend la première. Mais ce serait mieux s'il commençait pas lire la 1 au lieu de mettre 'undefined'...


Si qq'un a la soluce.... Merci !!!

Nicosse

7 réponses

shubenka Messages postés 759 Date d'inscription mercredi 11 décembre 2002 Statut Membre Dernière intervention 12 novembre 2008
11 janv. 2005 à 11:29
note:

quand tu fait:

variable+=1;

il est preférable de faire

variable++;



aprés pour ton probléme doit se situer la :

for (e in this)
{
messages_pmv[i] = this[e];
i += 1;
}

this ? c'est un peu bizare reflechit y



autre remarque

cela ne sert a rien de faire des var variable si elle sont utilisé pendant tout le programme

essaye de comprendre ce que tu a écrit ca t'aidera deja pas mal


<hr>
http://www.c0rben.com
0
cs_tom Messages postés 1511 Date d'inscription samedi 8 décembre 2001 Statut Modérateur Dernière intervention 11 juin 2009
11 janv. 2005 à 11:32
salut,

ca doit venir de ta variable i. Elle n'est pas tres utile dans ton code.




texte.onLoad = function (success)

{

for (e in this)

{

messages_pmv[e] = this[e];

}

messages_pmv.pop();

messages_pmv.reverse();

}



Logiquement, ca devrait etre mieux deja.

Mais bon je ne te garantie rien, faudrait que tu fasses des tests pour savoir ce qui foire.

Ou alors encore mieux, fais un push:



texte.onLoad = function (success)

{

for (e in this)

{

messages_pmv.push(this[e]);

}

message_pmv.reverse( );

}



La t'es sur de ne pas avoir de truc en trop.

@+Tom
0
nicosse Messages postés 24 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 29 décembre 2005
11 janv. 2005 à 14:07
Merci les gars pour vos réponses.... Je pense que ma fonction est juste, quand je trace curNews dans ma seconde frame, il me sort bien mes variables dans l'ordre (de 1 à n), mais le problème persiste : il ne parvient pas à lire le contenu de 1 la première fois.....

pour vos conseils, j'ai changé "=1" par une incrémentation simple, mais ça ne change rien au problème.....

Tom, quand je supprime la variable i, ça n'incrémente plus et le trace reste bloqué sur 1...

Shubenka, j'ai beau me creuser je vois pas ce qui cloche..... Je me suis fait aider pour cette fonction...

Nicosse
0
shubenka Messages postés 759 Date d'inscription mercredi 11 décembre 2002 Statut Membre Dernière intervention 12 novembre 2008
11 janv. 2005 à 14:34
c'est pas clair ton truc dit nous ce qu'il y a dans ton txt

et tu pourais regarder ceux que tu a dans tes variables faire des trace de this[e]
peu étre que dans this il y a des variable qui undifined donc c'est peu étre normal


<HR>
http://www.c0rben.com
0

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

Posez votre question
nicosse Messages postés 24 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 29 décembre 2005
11 janv. 2005 à 15:50
si je comprends bien, la méthode de lecture des variables commence par la valeur 0.... Voici ce que j'ai dans mon TXT

1=SUR AUTOROUTE
ON ROULE A
DROITE
&2=LE COUP DE
POMPE C'EST
DANS LES PNEUS
&3=TOUTES LES DEUX
HEURES LA PAUSE
S'IMPOSE
&4=AU VOLANT PAS
D'ALCCOL
&5=PAS DE CEINTURE
C'EST UN
OUBLI ?
&6=BROUILLARD
SOYEZ VIGILANTS

par contre quand je demande un trace de e et de curnews, il me fait la chose suivante :

1
onLoad
2
3
4
5
6
1
2....

Donc la fait de me sortir le nom de la méthode me crée un undefined...

Pour résoudre le pb il faut donc empecher flash de tracer messages_pmv[0] ou de lui expliquer que messages_pmv[0] est 1.... C'est possible ça ou je suis dans le faux ??

Nicosse
0
shubenka Messages postés 759 Date d'inscription mercredi 11 décembre 2002 Statut Membre Dernière intervention 12 novembre 2008
11 janv. 2005 à 16:24
oui ba j'aurai pas fait comme ca pour m'étre les donnée dans un tableau.

de plus de m'étre 1;2,3 en nom de variable c'est trés bizare que cela marche vu que c'est interdit normalement vu que si aprés tu fait variable=1+3; ...

bref je te donne pas de code apparament tu comprend pas celui que tu a écrit (si c'est toi qui la écrit)

desolé si mon message est désagreable

<HR>
http://www.c0rben.com
0
nicosse Messages postés 24 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 29 décembre 2005
11 janv. 2005 à 18:25
Je n'ai pas dit que j'avais écrit ce code j'ai dit que je m'étais fait aider... Pour comprendre un truc c'est bien quand on a une explication, j'en ai eu une excellente sur un autre site. Pour ma fonction, il manquait un stop sur la frame 1, la variable n'était pas lue. Il suffisait de rajouter un play dans le Onload, et le tour est joué.

Merci quand même de m'avoir accordé un peu de ton temps...

Nicosse
0
Rejoignez-nous