Suivant et précédent

vegetalain Messages postés 747 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 11 août 2022 - 17 nov. 2008 à 16:56
cortoh Messages postés 1255 Date d'inscription dimanche 18 décembre 2005 Statut Membre Derniè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...)

Merci

6 réponses

pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
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.

L'E4x de l'as3 à vraiment simplifié tout ça...

Peg'
0
vegetalain Messages postés 747 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 11 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 !!!!
0
cortoh Messages postés 1255 Date d'inscription dimanche 18 décembre 2005 Statut Membre Derniè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..

bon courage,
C.

Peace From Mars
To All Human Beings
0
vegetalain Messages postés 747 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 11 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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
vegetalain Messages postés 747 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 11 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...
0
cortoh Messages postés 1255 Date d'inscription dimanche 18 décembre 2005 Statut Membre Dernière intervention 2 décembre 2008
18 nov. 2008 à 16:39
peut-être à cause de ceci:   if (i > 0) {i++;} car i est toujours > 0, mais sans limite supérieure.

peut-être quelque chose du genre:   if (i < nbelem) {i++;} si nbelem est bien la longueur de ta liste d'éléments..
0
Rejoignez-nous