LoadVars et variables

MAZALEYRAT Messages postés 16 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 23 janvier 2008 - 22 janv. 2008 à 10:11
nickydaquick Messages postés 416 Date d'inscription vendredi 31 janvier 2003 Statut Membre Dernière intervention 19 décembre 2013 - 22 janv. 2008 à 17:29
Bonjour ! ...pour ceux qui maitrisent  parfaitement bien la fonction
LoadVars... et c'est bien là que réside mon problème du moment. Je
butte très certainement sur un tout petit détail mais ça me prend la
tête depuis pas mal de temps déjà et je baisse les bras !
En clair :
sur la première frame j'utilise la collection d'instructions classiques
pour lire un fichier de type .txt, cette lecture se fait dans une
fonction.
Sur la deuxième frame, donc en dehors de la fonction, je
veux utiliser une les variables lues dans la première frame... et bien
impossible, mes variables ne "sortent" pas de la fonction (undefined).
Mon code :
Frame 1 :

A1 = new LoadVars();
A1.load("http://www.............../monfichier.txt); // Mon fichier texte comprend : &valeur1="toto" & valeur2="zaza"
A1.onLoad = function(success) {
if (success) {
variable1 = A1.valeur1;
variable2 = A1.valeur2;
}
trace(variable1); // et ça affiche toto sans probleme
trace(variable2); // et ça affiche zaza sans probleme
}

Frame 2 :
trace(variable1); // et ça affiche "undefined"
trace(variable2); // et ça affiche "undefined"

En d'autres termes, mes variables ne sont disponibles qu'à l'intérieur de la fonction qui lit le fichier texte.
Mon but : pouvoir utiliser les variables ailleurs .... est ce possible ?

MERCI POUR VOTRE ATTENTION ET VOTRE COLLABORATION !  

3 réponses

nickydaquick Messages postés 416 Date d'inscription vendredi 31 janvier 2003 Statut Membre Dernière intervention 19 décembre 2013 3
22 janv. 2008 à 10:36
Salut,

c normal,
1- declare tes variables en dehors de ta fonction (principe de portee des variables en programmation)
2- meme si tu programmes de meme, tu ne verras pas affiche correctement le contenu des variables parce LoadVars fait un appel asynchrone, ce qui veut dire que tu es PRESQU'ASSURE de passer a la Frame 2, sans que ton LoadVars ait fini de charge le contenu desire.

je suis heureux de faire partie d'une grande famille ...!
0
MAZALEYRAT Messages postés 16 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 23 janvier 2008
22 janv. 2008 à 12:25
Merci pour cette prompte réponse ! ....

Si je comprends bien, mon problème est insolvable, c'est à dire qu'il n'y a pas de possibilité pour "exporter" les valeurs de variables qui sont calculées dans une fonction, en dehors de cette fonction afin de pouvoir les exploiter ailleurs dans les scipts du .fla
Je comprends bien le problème du fonctionnement asynchrone de LoadVars. Existe-t-il une autre méthode pour aller lire des variables dans un fichier texte.txt externe sans passer par une fonction "enfermante" ?

JPM
0
nickydaquick Messages postés 416 Date d'inscription vendredi 31 janvier 2003 Statut Membre Dernière intervention 19 décembre 2013 3
22 janv. 2008 à 17:29
Salut ,

comme je te l'ai mentionne , declare tes variables hors de ta fonction et tout marchera bien. maintenant si tu tiens asolument a voir le contenu de ses variables a la frame 2 voici ton code modifie plus simplement :

FRAME 1:

stop();
var methode:String = "POST";//ou "GET" ca depend de ta methode

if(variable1==null)
    variable1 = "";
if(variable2==null)

    variable2 = "";
if(A1==null)
{
    A1 = new LoadVars();
    A1.onLoad = function(success:Boolean)
    {
        if (success)
        {
        variable1 = A1.valeur1;
        variable2 = A1.valeur2;
         gotoAndPlay(2);
        }
      }
     A1.sendAndLoad("http://www.............../monfichier.txt",A1,methode);
}

FRAME 2:

stop();
trace(variable1);
trace(variable2);
je suis heureux de faire partie d'une grande famille ...!
0
Rejoignez-nous