cs_albator59
Messages postés44Date d'inscriptionlundi 28 juin 2004StatutMembreDernière intervention17 décembre 2006
-
23 août 2005 à 10:34
cs_albator59
Messages postés44Date d'inscriptionlundi 28 juin 2004StatutMembreDernière intervention17 décembre 2006
-
23 août 2005 à 17:18
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'
Crazyx
Messages postés128Date d'inscriptionvendredi 4 avril 2003StatutMembreDernière intervention15 octobre 2008 23 août 2005 à 11:25
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
Crazyx
Messages postés128Date d'inscriptionvendredi 4 avril 2003StatutMembreDernière intervention15 octobre 2008 23 août 2005 à 11:41
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
Crazyx
Messages postés128Date d'inscriptionvendredi 4 avril 2003StatutMembreDernière intervention15 octobre 2008 23 août 2005 à 12:34
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
Crazyx
Messages postés128Date d'inscriptionvendredi 4 avril 2003StatutMembreDernière intervention15 octobre 2008 23 août 2005 à 13:19
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.
cs_albator59
Messages postés44Date d'inscriptionlundi 28 juin 2004StatutMembreDernière intervention17 décembre 2006 23 août 2005 à 13:51
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????)
Crazyx
Messages postés128Date d'inscriptionvendredi 4 avril 2003StatutMembreDernière intervention15 octobre 2008 23 août 2005 à 14:05
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
}
}
}
Crazyx
Messages postés128Date d'inscriptionvendredi 4 avril 2003StatutMembreDernière intervention15 octobre 2008 23 août 2005 à 14:32
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és128Date d'inscriptionvendredi 4 avril 2003StatutMembreDernière intervention15 octobre 2008 23 août 2005 à 14:39
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
Crazyx
Messages postés128Date d'inscriptionvendredi 4 avril 2003StatutMembreDernière intervention15 octobre 2008 23 août 2005 à 15:06
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é.
cs_albator59
Messages postés44Date d'inscriptionlundi 28 juin 2004StatutMembreDernière intervention17 décembre 2006 23 août 2005 à 15:40
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....