vegetalain
Messages postés747Date d'inscriptionmardi 25 mars 2003StatutMembreDernière intervention11 août 2022
-
17 nov. 2008 à 16:56
cortoh
Messages postés1255Date d'inscriptiondimanche 18 décembre 2005StatutMembreDernière intervention 2 décembre 2008
-
18 nov. 2008 à 16:39
salut, voilà, j'ai un fichier xml qui ressemble à ça :
<main>
<news>
<title1 value= "Donnée 1" />
<title2 value="Donnée 2" />
<title3 value="Donnée 3 qdkljqmslkd sqd" />
</news>
<news>
<title1 value="Donnée 1b" />
<title2 value="Donnée 2b" />
<title3 value="Donnée 3b qdkljqmslkd sqds lkjqmsdklj mlkjqsm dkf" />
</news>
</main>
et un fichier fla avec des champs.
Au démarrage j'ai mis ça : myXML new XML();myXML.ignoreWhite true;myXML.load("Fichier.xml");myXML.onLoad = function(flag) {
if (flag) { i 0; x myXML.firstChild;
while (x.childNodes[i] != undefined) {
A01.htmlText = ("info numéro "+(i+1));
A02.htmlText = (" "+x.childNodes[i].childNodes[0].attributes.value+" ");
A03.htmlText = (x.childNodes[i].childNodes[1].attributes.value);
A04.htmlText = (x.childNodes[i].childNodes[2].attributes.value);
i++;
}
A00.text = (i+" news trouvées");
}
};
et ça affiche le fichier xml... mais uniquement la dernière news.
Je n'arrive aps à faire en sorte qu'en appuyant sur un bouton on passe à la news précédente, et/suivante... il doit y avoir une sorte de i++ et i-- à utiliser mais comment et où j'en sais rien.
Quelqu'un pourrait m'aider?
(un peu dans le genre des news sur la page d'accueil de hotmail, dans le principe en fait...)
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 17 nov. 2008 à 18:32
bonsoir
Je ne me souvenais plus du XML type AS2 .. punaise quel merdier ...
Moi je te conseille d'extérioriser ton code de tri xml dans une fonction que tu appellerais via un argument ciblant la news en question.
Après je ne saurais pas t'en dire plus, car je ne me souviens plus de comment ça marchait les childNodes et tout le Bazar.
vegetalain
Messages postés747Date d'inscriptionmardi 25 mars 2003StatutMembreDernière intervention11 août 2022 17 nov. 2008 à 19:28
tiens, Pegase31 :D re-bonjour, hihihi... hm... As3 pitète mais ça concerne je pense les versions supp' à Flash8..? je n'ai que flash8... remarque si tu dis que tu ne te souviens plus comment ça marchait, c'est que ça marchait... je vais essayer de trouver avec l'As2 et si vraiment ça tourne à la quête du cauchemar finale, eh bien je passerais à l'as3...
Mici et bonne soirée !!!!
cortoh
Messages postés1255Date d'inscriptiondimanche 18 décembre 2005StatutMembreDernière intervention 2 décembre 2008 18 nov. 2008 à 11:50
salut,
je ne suis pas certain, mais tu pourrais lier ton incrémentation a ton bouton. a chaque pression, i augmente de 1, ou diminuer de 1, par exemple. et bien sur, le dit bouton active la fonction de parsing de ton xml..
vegetalain
Messages postés747Date d'inscriptionmardi 25 mars 2003StatutMembreDernière intervention11 août 2022 18 nov. 2008 à 13:52
Alors ça affiche toujours la dernière entrée.. j'ai rajouté un champ, genre "page numéro"... et j'ai mis ça sur le bouton précédent :
on (release) {var myXML:XML new XML();myXML.ignoreWhite true;myXML.onLoad = loadMessage;myXML.load("Fichier.xml");
function loadMessage(success:Boolean):Void {if (success) {//i = 1
var _prev
if (i > 0) {i--;}
A01.htmlText = ("info numéro "+(i+1));
A02.htmlText = (" "+x.childNodes[i].childNodes[0].attributes.value+" ");
A03.htmlText = (x.childNodes[i].childNodes[1].attributes.value);
A04.htmlText = (x.childNodes[i].childNodes[2].attributes.value);
page.text = i}};
}
et ça sur le bouton suivant :
on (release) {var myXML:XML new XML();myXML.ignoreWhite true;myXML.onLoad = loadMessage;myXML.load("Fichier.xml");
function loadMessage(success:Boolean):Void {if (success) {//i = 1
var _next
if (i < nbelem) {
A01.htmlText = ("info numéro "+(i+1));
A02.htmlText = (" "+x.childNodes[i].childNodes[0].attributes.value+" ");
A03.htmlText = (x.childNodes[i].childNodes[1].attributes.value);
A04.htmlText = (x.childNodes[i].childNodes[2].attributes.value);
}
if (i < nbelem) {i++;}
page.text = i}};
}
mais faut cliquer deux fois sur "précédent" pour afficher le truc d'avant... et pour suivant, ça marche pas...
J'ai recopié ça d'un vieux truc que j'ai retrouvé dans mes archives...
Où ça re-cloche???
snifeuh
Vous n’avez pas trouvé la réponse que vous recherchez ?
vegetalain
Messages postés747Date d'inscriptionmardi 25 mars 2003StatutMembreDernière intervention11 août 2022 18 nov. 2008 à 16:33
j'ai mis ça finalement dans le bouton suivant :
on (release) {var myXML:XML new XML();myXML.ignoreWhite true;myXML.onLoad = loadMessage;myXML.load("Fichier.xml");
function loadMessage(success:Boolean):Void {if (success) {//i = 1
var _prev
if (i > 0) {i++;}
A01.htmlText = ("info numéro "+(i+1));
A02.htmlText = (" "+x.childNodes[i].childNodes[0].attributes.value+" ");
A03.htmlText = (x.childNodes[i].childNodes[1].attributes.value);
A04.htmlText = (x.childNodes[i].childNodes[2].attributes.value);
page.text = i}};
}
seulement si par ex. y'a que 5 "fiches"... il continue à afficher 6, 7, 8, etc... et undefined dans les champs, forcéement puisqu'il n'y a rien à afficher...