begin process at 2010 03 16 20:14:18
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Flash

 > 

Archives

 > 

ActionScript

 > 

Flash + XML + recuperation de données (variables)


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Flash + XML + recuperation de données (variables)

jeudi 19 février 2004 à 09:42:10 | Flash + XML + recuperation de données (variables)

cadoudal56

Bonjour à tous et à toutes,

Désolé, ma question risque de ne rien avoir de passionnant pour certains programmeurs chevronnés, mais je dois bien avouer que cela fait deux jours que je planche sur mon script et je viens enfin d'identifier le probleme mais je n'ai pas trouver la solution>......
Si vous aviez le temps d'y jeter un coup d'oeuil et de me donner la soluce, je ne vous en remercierais jamais assez...


QUELQUES EXPLICATIONS


Voila, j'utilise un fihcier XML pour stocker des variables en grand nombre. Pas de probleme de ce coté là. Je charge le fichier xml avec un script du style :

photos_xml = new XML();
the_data = new Array();
photos_xml.ignoreWhite = true;
photos_xml.onLoad = function(ok) {
if (ok) {
noeuds = photos_xml.firstChild.childNodes;
for (var i=0; i< noeuds.length; i++) {
the_data[i] = noeuds[i].firstChild.attributes.fichier;
}//end for
}
};
photos_xml.load("photos.xml");


Bon je ne suis plus tres sur du code mais en gros c'est cela....
Voila en gros je veux pouvoir parcourir mon fichier xml et stocké les variables dans un tableau que je récupère ensuite

J'ai bien déclaré le tableau avec :
the_data = new Array();

et je charge avec :
the_data[i] = noeuds[i].firstChild.attributes.fichier;

Alors j'ai beau faire des traces, ou des affichages, quand je demande la valeur de the_data[0] ou data[1], il me l'affiche si je suis avant

photos_xml.load("photos.xml");

Mais si je suis après c'est Undefined obligatoire.

Quelqu'un peut-il me dire pourquoi ? Mon tableau est déclaré avant pourtant !!
J'ai beau mettre des _global ou autre, rien a faire...

Le but du script je le rappelle, parse un fichier xml, pour récupérer tout dans un tableau dont je puisse me resservir...

Merci d'avance aux généreux contributeur
@+





Cadoudal56
La Bretagne ca vous gagne !!
jeudi 19 février 2004 à 13:01:19 | Re : Flash + XML + recuperation de données (variables)

Namokun


Lut

Bon je suis debutant en flash et j'ai eu le même probleme ... enfin presque il ne chargeait que les deux premiers noeuds et pas les suivants, avec des traces et des essais, je me suis aperçu que ça venait d'accents.

Je pense que tu as le même probleme : chargement des 2 premiers noeuds et arret ... donc regarde dans ton fichier Xml si dans le noeud 2 ou 3 tu as des accents ... J'espere que c'est ça ...

@++
jeudi 19 février 2004 à 14:49:13 | Re : Flash + XML + recuperation de données (variables)

cadoudal56

helas,

ce serait trop facile....
Il charge bien tout le fichier XML comme il faut, je le vois grace au debuggeur...
Ce que je trouve étrange c'est que les données sont bien chargées tant que je suis dans le chargement du fichier XML, mais dès que j'en sors, mon tableau se vide tout seul....
Cela defie toute logique... C bizarre

En tout cas je te remercie de t'etre arreté sur mon probleme...
Il n'y a pas d'accent dans le fichier XML donc...

Quelqu'un a une autre idée ?
Merci d'avance

Cadoudal56
La Bretagne ca vous gagne !!
jeudi 19 février 2004 à 15:12:14 | Re : Flash + XML + recuperation de données (variables)

bongawonga

Effectivement Namokum à raison si ton XML contient des cxaractères spéciaux ça va te posé tes problemes au chargement. Pour palier à ce probleme tu as 2solutions:

-soit tu encodes tes infos en URL avec la fonction escape(info.text) et pour décoder unescape(noeud[z])

-soit au début de ton programme tu ajoute cette ligne System.useCodepage = true;
pour les interpréter ton fichier dans le bon encode, c'est une des fonction "caché" de FlashMX pour plus d'info va voir le site officiel, bien sûr

http://www.macromedia.com/support/flash/action_scripts/actionscript_dictionary/actionscript_dictionary723.html

Voilà pour les caractères spéciaux

je n'ai pas tester ton code mais essaye déjà ça
noeuds = photos_xml.childNodes;
plûtot que
noeuds = photos_xml.firstChild.childNodes;

et quand tu parse ton fichier je pense qu'il faut déclarer ton tableau avant et avec une autre méthode que the_data[i]
essaye plutot comme ça pour voir:

the_data=new Array();
for (var i=0; i< noeuds.length; i++) {
trace(noeuds[i].firstChild.attributes.fichier)
the_data.push(noeuds[i].firstChild.attributes.fichier);
}

ça change pas de grand chose par rapport à ce que tu as fait mais quand ça merde toutes les solutions sont bonne lol

au passage tu pourra voir si le probleme ne vient pas de la manière dont tu découpe ton XML

bon courage man




jeudi 19 février 2004 à 15:22:35 | Re : Flash + XML + recuperation de données (variables)

cadoudal56

Hello,


Désolé bongawonga, tu n'a peut etre pas lu ma réponse...
Le fichier XML ne contient aucuns accents j'en suis sur, donc le probleme ne peut pas venir de là....

J'ai bien déclarer mon tableau
photos_xml = new XML();
the_data = new Array();


La question est ardue.....

Quand je suis dans la boucle
for (var i=0; i< noeuds.length; i++) {
the_data[i] = noeuds[i].firstChild.attributes.fichier;
}//end for


il affiche bien la valeur de the_data[i]. J'ai essayé via le debuggeur ou via insertion dans un fichier texte tout marche, mais dès que je sors de la boucle

photos_xml.onLoad = function(ok) {
...
};

et bien pour lui le tableau the_data est vide....
Je programme sur plusieurs langages et j'avoue que c'est la première fois que je vois cela.... Pourtant j'ai bien fais attention, mon tableau n'est pas en variable locale. J'ai meme essayer de le mettre en _global et rien a faire !!!

Il y a un truc la dessous... Je sens que je suis bien parti pour faire un copier coller de source existante pour réadapter...
Ca fais chier parce que je bloque sur le dernier truc et là faut que je recommence tout.

Ah les joies de la programmation !!

Quelqu'un d'autre a une idée ??

Donc c'est pas un probleme d'accent
Mon tableau est déclaré a la deuxieme ligne du script...

Merci d'avance



Cadoudal56
La Bretagne ca vous gagne !!
jeudi 19 février 2004 à 19:10:39 | Re : Flash + XML + recuperation de données (variables)

Namokun

euh c'est ptet debile ... mais tu as essayé de creer ton tableau dans ta fonction (en variable locale: "var the_data = new Array();") et de retourner ce tableau avec un "return" et de creer un tableau exterieur qui le reçoit :"tab = photos_xml.load("photos.xml");" puisque ton tableau recoit bien les valeurs dans la fonction ?

Sinon donne nous le code exact et ton Xml (ou un exemple).

Si ça marche dis le ;)
jeudi 19 février 2004 à 22:40:49 | Re : Flash + XML + recuperation de données (variables)

cadoudal56

hello,

De retour a la maison, je suis en mesure de vous balancer les vrais bout de code...

Le fichier xml d'abord

<SLIDES>
<SLIDE>
<NOM fichier="albator" numfichier="6">Albator</NOM>
</SLIDE>
<SLIDE>
<NOM fichier="Sportbilly" numfichier="6">Sport billy</NOM>
</SLIDE>
<SLIDE>
<NOM fichier="Bouba" numfichier="5">Bouba</NOM>
</SLIDE>
</SLIDES>


et maintenant le bout de code

slides_xml = new XML();

new_slides = new Object();
new_slides.numfichier = new Array();
new_slides.nom = new Array();
new_slides.fichier = new Array();

slides_xml.ignoreWhite = true;
slides_xml.onLoad = function() {
noeuds = this.firstChild.childNodes;
for (var i = 0; i < noeuds.length; i++) {
new_slides.nom[i] = noeuds[i].firstChild.firstChild.nodeValue;
new_slides.fichier[i] = noeuds[i].firstChild.attributes.fichier;
new_slides.numfichier[i] = noeuds[i].firstChild.attributes.numfichier;
}//end for i
}//end slide_xml onLoad
slides_xml.load("data.xml");
_root.montexte.text = "texte :" + new_slides.fichier[1];
trace(new_slides.fichier[1]);

Voila et si vous essayer vous verrez que le dernier trace est vide... Alors que dans la boucle il y est...

La c'est une soluce degradé, au debut je voulais remplir un tableau appellé slide et qui aurait été a deux dimensions...

Merci d'avance a ceux qui se penchent sur le probleme...

@+


Cadoudal56
La Bretagne ca vous gagne !!
jeudi 19 février 2004 à 23:05:15 | Re : Flash + XML + recuperation de données (variables)

bongawonga

DSL pour l'aide sur les caractère spéciaux...j'espère que ce sera utile à quelqu'un

Bon ton probleme est vraiment tres bete
et e dirais même que si je t'avais devant moi je te mettrais des claques tellement c'est betes

en fait ton code est nikel
tout est nikel c'est juste ton test qui est pas au bonne endroit
tu le test avant que ton fichier soit chargé en le mettant juste apres ta fonction pour parser ton XML c'est bon

slides_xml.onLoad = function () {
noeuds = this.firstChild.childNodes;
for (var i = 0; i < noeuds.length; i++) {
trace ("??"+noeuds[i].firstChild.firstChild.nodeValue);
new_slides.nom[i] = noeuds[i].firstChild.firstChild.nodeValue;
new_slides.fichier[i] = noeuds[i].firstChild.attributes.fichier;
new_slides.numfichier[i] = noeuds[i].firstChild.attributes.numfichier;
}
//
trace (new_slides.fichier[1]);
_root.montexte.text = "texte :" + new_slides.fichier[1];
};

Je l'ai tester sur des boutton , ou dans différent endroit de la scene ça fonctionne nikel Chrome du poil.
Je sais pas combien de temps tu as du perdre la dessus mais je pense que tu vas te cognier le tête un bon moment quand tu vas découvrir ça lool

Ou alors j'ai encore rien compris, là je te donne mon adresse et te paye un billet de train pour venir me mettre des claques.
vendredi 20 février 2004 à 14:52:40 | Re : Flash + XML + recuperation de données (variables)

Namokun

euh en fait je resume plus clairemenet parce que pour moi c'était po tres net:

Tu parses ton fichier xml sur l'événement "onLoad" , ça marche.
Tu fais ton test ("trace(...)") dans le onLoad, le fichier est bien chargé quand le onLoad est déclenché.
Tu fais un test hors de la fonction lors de l'initialisation : ça marche pas car ton tableau est pas encore rempli (il se remplira quand l'évenement onLoad sera déclenché).

Pour verifier qu'il est chargé :
Tu peux faire un bouton comme l'a dit Bongawonga, et sur l'action onPress afficher la valeur du tableau (avec un trace)...

En fait ça marche depuis le debut ... tu as perdu du temps pour rien ... enfin si : on apprend toujours de ses erreurs ;)
vendredi 20 février 2004 à 17:59:33 | Re : Flash + XML + recuperation de données (variables)

cadoudal56

En fait jai tester des milliars de solutions...
Avec pleins de bout de codes a droite et a gauche...
C'est pour cela que j'ai perdu du temps et c'est parce que je ne comprends pas que je demande des précisions.

En fait si j'interprete mon code en langage humain moi je comprends ceci :

Je declare le tableau
Je previens que je vais ouvrir un objet XML

Je charge le fichier XML (Onload)
Pour m'assurer qu'il est bien chargé je lui colle une fonction (comme cela parait-il on est sur que c'est chargé...

Pendant la fonction je lui dis de récupérer des valeurs dans le fichier XML et de les coller dans des variables avec attributs, quoique mon but était de le récupérer dans un tableau a deux dimensions (style fichier excel) afin de pouvoir les répérer a coup sur !

Il finit le onload....
Et après je lui pose une question pour voir si le script a fait ce que j'ai dit (Interro surprise !!)

trace (new_slides.fichier[1]);
_root.montexte.text = "texte :" + new_slides.fichier[1];

Je lui dit
affiche dans le debuggeur la valeur de cette variable new_slides.fichier[1] et pour corser le tout je lui dis affiche le sur l'anim (comme cela je suis sur de sur !!)

Quand je lance le bouzier sa réponse c'est :
Je sais pas, Y a rien !

Alors moi je lui crie dessus :
Tu la vois pas là ? tu viens de la charger !! (c'est une transcription ! mon langage est moins chatié en privé !)

Et là d'après ce que vous me dites c'est :
Flash ouvre le fichier puis ensuite il le lis et quand il le ferme il oublie tout ?

Je trouve cela trop fort...

bongawonga dit :
en fait ton code est nikel
tout est nikel c'est juste ton test qui est pas au bonne endroit
tu le test avant que ton fichier soit chargé en le mettant juste apres ta fonction pour parser ton XML c'est bon



Ben oui je teste apres ma fonction Onload.....
Je lui dis charge et je teste quand c'est fini...

En relisant Namokun je comprend ce qu'il cherche a me dire, c'est a dire il faut la declencher....

Mais justement....
Moi je traduis :
Quand tu charge slides_xml tu fais ce qui est dit...

slides_xml.onLoad = function() {
ici le code voir plus haut
}//end slide_xml onLoad

Maintenant va y charge (Now ! schnell)
slides_xml.load("data.xml");

Et après je fais le test...
Normalement je suis bien a la racine de l'anim, c'est la premiere chose qu'il va lire et interpreter le lecteur flash non ?

Mon but c'est d'ouvrir le fichier xml une seule fois, ensuite de garder toutes les valeurs dans un tableau (avec ses petits bras musclé) et ensuite l'anim vis avec cela, pas besoin de retourner ouvrir le fichier (Pour moi c pas logique cela bouffe de la ressource pour rien).
C'est pas possible ça en flash ??

Merci pour vos réponses éclairées...
Je vais retenter deux ou trois trucs et méditer sur ces avancements....

@+ et merci


Cadoudal56
La Bretagne ca vous gagne !!

1 2

Cette discussion est classée dans : fichier, variables, data, xml, photos


Répondre à ce message

Sujets en rapport avec ce message

Stocker des variables en XML [ par Le Raton Laveur ] Bonjour à tous,Voila je vous explique mon problème:Je voudrais mettre dans un XML des variables (donner à "a" la valeur 5 et "b" la valeur 3 par exemp Variables ^^ [ par Charlopopo ] Bonjour,J'ai un petit problème au niveau des variables...Je souhaite charger "Q" données de "config.xml" dans le tableau "Tab_photos". Lors du test de xml et flash [ par olisnow06 ] Bonjour a tous !!J ai un soucis je suis en train de faire un lecteur video flash, il fonctionne et le lancement des videos ce font depuis un fichier x Galerie photos flash/xml [ par yassaetcie ] Bonjour,je cherche à développer une galerie de photos dynamique avec flash MX et du XML.j'ai pris comme modèle l'exemple sur ce site : <a href="http:/ image flash et xml [ par Andyyours ] bonjourje voudrais savoir comment faire pour avoir une image (dont le nom sera écrit dans un fichier .xml) dans un fichier flashde plus je voudrais cr probleme de rafraichissement flash/XML [ par PorcoRosso ] bonjour bonjour , j'ai un soucis, ma scene est une carte , (tirée d'une source de chez vous d'ailleurs ) lorsque je clique sur un point sur la carte .xml dans un loadmovie [ par Andyyours ] bonjour a tousvoila c'est tout simple je voudrais savoir comment faire pour que l'image "3.jpg" ne soit pas nommé dans flash mais dans un fichier .xml Adapter l'image externe.xml au cadre du MC [ par CMS_1203 ] Salut alors j'ai fait à l'aide d'un tutos un diaporama avec chargement d'images externe img.xml ...J'ai réussi à le mettre sur mon site avec mes conna Adapter l'image externe.xml au cadre du MC [ par CMS_1203 ] Salut alors j'ai fait à l'aide d'un tutos un diaporama avec chargement d'images externe img.xml ...J'ai réussi à le mettre sur mon site avec mes conna Téléchargement contextuel au contenu xml [ par nastev ] Je fais différents essais avec les tuto et depuis qqs jours je suis bloqué sur un script...J'affiche dans une  liste des mp3 qui se trouve dans des re


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,468 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales