Forum de discussion
Forum « Flash et Shockwave » (archives)
Re: aidez-moi svp!!! Bouton importer données externe
Envoyé: 31 mars 2004, 15h14 par Oznog
Attention au sujet, plus significatif s.t.p.
Tu dois utiliser "loadVariables" si c'est compatible version 5, je ne me souvient plus. C'est exactement le meme processus que tweFlashShow ou ton formulaire "type de fichier inconnu" mais pour MX.
De plus, maintenant on utilise LoadVar plus performant mais incompatible Flash 5.
Enfin, si jamais le "loadVariables" fonctionne sous la version 5, tu n'as pas besoin nécessairement de PHP. Un langage serveur comme le PHP est pour manipuler des données. Elles peuvent d'une base de données, de XML ou d'un simple fichier texte.
Maintenant, Flash peut aussi bien lire directement un fichier XML ou texte sans pour autant devoir passer par ton PHP serveur.
Sans pousser trop loing ton cas, simple mais pas si simple que ça, commence par un fichier texte.
// Fichier externe.txt
mesNoms=nom1|prénom1|quantitée-livre|prix-total¦nom2|prénom2|quantitée-livre|prix-total¦nom3|prénom3|quantitée-livre|prix-total
Épuis dans ton bouton
on (release) {
loadVariables("externe.txt","_root.globale");
}
Maintenant c'est là le problème avec la version 5. Tu dois créer un clip de type "movieClip" vide et le mettre sur la scène avec le nom d'instance "globale".
De cette façon tu peut le sélectionner et ajouter le code suivant :
onClipEvent (data) {
trace(_root.globale.mesNoms);
}
Et voilà le miracle, 2 comportements et tu trouve la chaine du fichier texte (si il est dans le même répertoire).
Alors que faire avec tout ça. Le diviser dans un tableau (array). Un "plit". Et dans ton cas 2 split pour récupérer le tableau des valeur d'UN individu dna sle tableau DES INDIVIDU.
onClipEvent (data) {
this.aIndividus = _root.globale.mesNoms.split("¦");
var nMax = this.aIndividus.length;
trace(nMax);
}
Il suffit alors de jouer sur le nMax (de 0 à nMax).
Dison que tu veux afficher la quantité de livre du 2 ième client.
on (release) {
aClient = _root.globale.aIndividus[2].split("|");
trace(aClient[2]);
}
Additionner toutes les quantités
on (release) {
for (l=0;l<_root.globale.nMax;l++){
aClient = _root.globale.aIndividus[l].split("|");
this.total += aClient[2];
}
trace(this.total);
}
Bien sûr tu peux améliorer le tout en ayant un seul tableau d'une class client. Mais ça c'est une autre histoire. Commence toujours par implenter ces quelques lignes de code. Tu peux ajouter à volonter des entrer dans le fichier texte en respectant la structure |||¦|||¦|||.
Ciao
Oznog
Réponses
|