Définition de variable

[Résolu]
Signaler
Messages postés
44
Date d'inscription
lundi 28 juin 2004
Statut
Membre
Dernière intervention
17 décembre 2006
-
Messages postés
44
Date d'inscription
lundi 28 juin 2004
Statut
Membre
Dernière intervention
17 décembre 2006
-
bonjour tout le monde,

est-il possible de définir plusieurs valeurs possibles pour une variable. Le tout dans un fichier txt en parallèle (dans l'exemple ci dessous, il sagit de ID.txt) ???
L'objectif étant de lancer une anim après une identification valide :


Je détail :
- dans le fichier texte "ID" :
IDok = durant OU dupont

- au lancement de l'anim' :
loadVariablesNum ("ID.txt",0);

- je définie la variable "identification" par un champ de texte de saisie.

- enfin,
si identification=IDok alors lance la suite de l'anim'

autrement dit ,
si je m'identifi comme "durant" OU "dupont" je pourrais acceder à la suite de l'anim'

Merci d'avance
**Albator**

23 réponses

Messages postés
44
Date d'inscription
lundi 28 juin 2004
Statut
Membre
Dernière intervention
17 décembre 2006

merci bcq cx,
voici mon adresse msn : albator222@hotmail.fr
à tout'
Messages postés
128
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
15 octobre 2008

Salut
Je vais te dire comment je vois les choses mais bon je suis débutant donc ...

De 1, le loadVariablesNum j'aime pas trop parce que tu teste pas si les variables ont bien été récupérer ... c'est a dire qu'il se pourrait que quelqu'un entre "durant" et que l'accès lui soit refusé parce que l'animation n'avait pas finit de charger le contenu du fichier. Moi je fais plutot comme ca sur l'image 2 de mon anim :
oLoadText = new loadVars();
oLoadText.load("id.txt");
oLoadText.onLoad = function(success) {
if (success) {
idaccept = this.idok
gotoAndPlay(1);
}
};
Tant que le fichier n'est pas chargé il reste bloqué entre le 1 et le 2 ( tu peux mettre un chargement en cours ou tt autre texte pr faire patienter).
Au fait, il faut que ta variable idok dans le fichier txt soit précédée par le symbole & pour que flash reconnaisse que c'est une variable.

Ensuite ce que je te propose de faire c'est de créer un tableau (array) et de faire un test à travers une boucle pour verifier si la saisie etait durant, dupont ou meme duvent .
en fait moi je sais pas faire les tableaux ca m'a jamais réussit. Donc ce que je peux te dire c'est de faire ca :
dans ton fichier txt : &idok=dupont;durant;duvent etc...séparé par des ;
ensuite le code au dessus dans la frame 2 par exemple
et sur ton bouton s'identifier tu met ca comme action :(prend ce qui est en gras pour ton code)
on (release) {
testident = idaccept.split(";"); // on découpe idaccept et les valeurs vont dans testident, qui entre nous , jpense que c'est un tableau :p
nbid= testident.length; // on détermine combien testident contient d'id accepté
for (i=0; i<nbid; i++) { // on créer une boucle de test de longueur nbid , le nombre d'id accepté que contenait idok dans ton fichier texte.
testid = testf[i]; // on assigne a testid l'ident ok n° i dans la variable testid
identuser = identification.text // en supposant que identification est le label attribué a ton champ de texte ou l'on doit saisir l'identifiant.
if (identuser == testid) { // on verifie la saisie et le contenu n° i de identok
gotoAndPlay(5); // en suposant que la suite de l'anim en cas d'identification reussit se trouve sur la frame 5
} else {
gotoAndPlay(4); // en suposant que la frame 4 dira ident incorrect
}
}
}

Voila . Désolé si je peux pas t'apporter plus d'aide je débute donc ..
Bonne continuation
cx
Messages postés
1058
Date d'inscription
jeudi 24 juillet 2003
Statut
Modérateur
Dernière intervention
14 février 2009

je suis pas sûr d'avoir tous compris...
pour une variable contenant plusieurs valeurs c'est un tableau "array"

http://showcases.club.fr/
Messages postés
128
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
15 octobre 2008

Eu h en fait au cas ou j'ai mis les // en gras mais bon faut pas les prendre :p
cx
Messages postés
1058
Date d'inscription
jeudi 24 juillet 2003
Statut
Modérateur
Dernière intervention
14 février 2009

Messages postés
128
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
15 octobre 2008

En fait tu peux récupérer toutes le contenu de ton fichier text et créer un tableau apres avoir découpé le contenu grace a un caractere du genre ; qui determinera les differents contenus (dupont, durant etc..) et créer directement un tableau ( avec la commande newarray) . Moi ce que je fais c'est que j'utilise que le .split pour créer , je supose que c'en est un , un tableau contenant les différentes valeurs. si tu veux le tableau IDENT
contiendrait en IDENT[0] dupont , IDENT[1] durant etc... mais je pense que ca revient au meme parce que dans mon exemple j'ai l'equivalent avec ... oups je viens de voir l'erreur ... dans testid = testf[i] corrige c plutot testid = testident[i] ... Donc la je reprend je pense que ca revient au meme avec la variable testident et qu'il y'a pas besoin de créer soit meme un tableau avec newarray .
Voila

cx
Messages postés
128
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
15 octobre 2008

Yep post croisé ... glandouilleurs qui foutent rien au taf hein? :p

cx
Messages postés
1058
Date d'inscription
jeudi 24 juillet 2003
Statut
Modérateur
Dernière intervention
14 février 2009

encore en vacances MOI

http://showcases.club.fr/
Messages postés
128
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
15 octobre 2008

GRRRRR

cx
Messages postés
128
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
15 octobre 2008

il a pas pris le message complétement apres le grr j'ai mis je rigole bonne vacances. Sinon tu connais pas une méthode meilleur pour aider albatros ? comme ca ca m'aiderait aussi a mieux comprendre

cx
Messages postés
1058
Date d'inscription
jeudi 24 juillet 2003
Statut
Modérateur
Dernière intervention
14 février 2009

en faite, j'ai pas tout compris dans la 1er question ...

http://showcases.club.fr/
Messages postés
128
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
15 octobre 2008

si j'ai bien compris aussi il veut faire une identification en lisant dans un fichier .txt la variable idok qui contiendrait les identifiants accepté pour poursuivre l'animation.
T'arrive tu met identifiant et flash devrait lire dans id.txt la variable idok et voir si y'a une entrée correspondante. le probleme residerait selon lui au fait de mettre plusieurs identifiants dans la variable idok
moi je lui ai proposé de mettre tt ses identifiant sous la forme &idok=id1;id2; ...
et puis de les recupérer et de spliter sur le caractere point virgule et de creer une boucle for qui verifierai la saisie de l'utilisateur avec idok[1] , idok[2] etc...tableau qu'il obtiendrait par le .split de la variable récupérer.

cx
Messages postés
44
Date d'inscription
lundi 28 juin 2004
Statut
Membre
Dernière intervention
17 décembre 2006

Oui, tout a fait c'est bien ça le problème.

Par contre, j'ai du mal à suivre avec la solution proposé par cx... notament lorsqu'on détermine combien testident contient d'id accepté... (heu, on le détermine ou????)

Désolé, mais je débute également...
**albator**
Messages postés
128
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
15 octobre 2008

testident = idaccept.split(";");
il est determiné par le split de idaccept .
et idaccept est déclaré à la frame 2 si tu as suivi mon exemple par :
oLoadText = new loadVars();
oLoadText.load("id.txt");
oLoadText.onLoad = function(success) {
if (success) {
idaccept = this.idok;
gotoAndPlay(1);
}
};
C'est vrai j'ai fait une gourde mais pas sur idaccept
en fait :
sur la FRAME 1
oLoadText = new loadVars();
oLoadText.load("id.txt");
oLoadText.onLoad = function(success) {
if (success) {
idaccept = this.idok;
gotoAndStop(2);
}
};
Sur la frame 2
ton champ de texte on va dire identifier par identification
et ton bouton
sur ton bouton tu met en action :

on (release) {
testident = idaccept.split(";"); // on découpe idaccept et les valeurs vont dans testident, qui entre nous , jpense que c'est un tableau :p
nbid= testident.length; // on détermine combien testident contient d'id accepté
for (i=0; i<nbid; i++) { // on créer une boucle de test de longueur nbid , le nombre d'id accepté que contenait idok dans ton fichier texte.
testid = testf[i]; // on assigne a testid l'ident ok n° i dans la variable testid
identuser = identification.text // en supposant que identification est le label attribué a ton champ de texte ou l'on doit saisir l'identifiant.
if (identuser == testid) { // on verifie la saisie et le contenu n° i de identok
gotoAndPlay(4); // en suposant que la suite de l'anim en cas d'identification reussit se trouve sur la frame 4
} else {
gotoAndPlay(3); // en suposant que la frame 4 dira ident incorrect
}
}
}

cx
Messages postés
128
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
15 octobre 2008

Messages postés
128
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
15 octobre 2008

Le post précédent a l'air de pas avoir marché ... :S
J'ai relu ta question et apparement tu t'interroge sur comment compter le nombre de variables dans testident .
tu verras que t'aura 3 en output.
En fait .length existe aussi pour les tableaux (les arrays)
Usage: myArray.length - Description :Property; contains the length of the array.

Si t'es pas convaincu, essaye ca :
var1 = "JEAN;JANE;JIJI";
var2 = wow.split(";");
nbf = var2.length;
trace(nbf);

crazYx
Messages postés
128
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
15 octobre 2008

le "tu verras que t'aura 3 en output" devait se placer la fin de mon post

cx
Messages postés
128
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
15 octobre 2008

Bon désolé je remet tout ca dans un post comme exemple :

Id.txt
&idok= dupont;durant

sur la FRAME 1
oLoadText = new loadVars();
oLoadText.load("id.txt");
oLoadText.onLoad = function(success) {
if (success) {
idaccept = this.idok; // on récupére idok contenu dans id.txt
gotoAndStop(2);
}
};
Sur la frame 2
ton champ de texte on va dire identifier par identification
et ton bouton
sur ton bouton tu met en action :

on (release) {
testident = idaccept.split(";"); // on découpe idaccept et les valeurs vont dans testident, qui entre nous , jpense que c'est un tableau :p
nbid= testident.length; // on détermine combien testident contient d'id accepté. le .length fonctionne aussi pour les tableaux pour compter le nombre de valeur qu'il contient.
for (i=0; i<nbid; i++) { // on créer une boucle de test de longueur nbid , le nombre d'id accepté que contenait idok dans ton fichier texte.
testid = testf[i]; // on assigne a testid l'ident ok n° i dans la variable testid
identuser = identification.text // en supposant que identification est le label attribué a ton champ de texte ou l'on doit saisir l'identifiant.
if (identuser == testid) { // on verifie la saisie et le contenu n° i de identok
gotoAndPlay(4); // en suposant que la suite de l'anim en cas d'identification reussit se trouve sur la frame 4
} else {
gotoAndPlay(3); // On suposera que la frame 3 dira incorrect
}
}
}

Voila . En esperant avoir été clair cette fois çi :p
cx
Messages postés
128
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
15 octobre 2008

C pas possible je manque cruellement de sommeil pour faire autant d'erreur . Derniere correction j'espere dans testid <gras>testf[i] , il faut remplacer par testid</gras> testident[i];
Tiens moi au courant parce que je viens d'essayer sur un .fla et ca a marché.

cx
Messages postés
44
Date d'inscription
lundi 28 juin 2004
Statut
Membre
Dernière intervention
17 décembre 2006

haarggg !!!!!
soit je suis vraiment pas doué, soit je manque également de sommeil... je n'arrrete pas de faire et refaire le test sur un .fla et pas moyen....

Serait possible d'avoir acces à ton .fla??

En tout cas, merci bcq !!