[XML & Actionscript] Récupérer des URLs dynamiques dans un XML

[Résolu]
Signaler
Messages postés
4
Date d'inscription
mercredi 9 juillet 2008
Statut
Membre
Dernière intervention
30 octobre 2008
-
Messages postés
4
Date d'inscription
mercredi 9 juillet 2008
Statut
Membre
Dernière intervention
30 octobre 2008
-
Bonjour à tous,



Je travaille actuellement sur un site qui comporte une navigation linéaire, avec sur chaque page un bouton "suivant" et un "précédent", réalisés avec Flash, bien sûr.

En tant que graphiste, je ne touche pas très souvent à actionscript dans Flash, et mon niveau technique est, en plus d'être obsolète, relativement bas.

Voici le contexte :

Chaque page du site a un ID unique, et je recherche donc une solution pour :
<li>récupérer l'URL de la page en cours,</li><li>demander aux boutons "précédent" et "suivant" de lire cette URL,</li><li>suivant l'URL lue, d'aller chercher un fichier XML à une URL qui correspond à la page en cours,</li><li>adapter la valeur de leur "getURL" à la page suivante et la page précédente.
</li>

J'ai trouvé une méthode pour récupérer l'URL de la page en cours
(en suivant les conseils de ce jeune homme :
http://blog.circlecube.com/2008/03/20/get-current-url-and-query-string-parameters-to-flash-tutorial/)


A été mis en place la génération
automatique d'un petit fichier XML suivant où on se trouve dans le
site.

Si l'ID de la page en cours est "lenomdelapage", les petits boutons Flash suivant et précédent
pourront lire la fin de l'URL qui contient l'id "lenomdelapage", et aller
récupérer le petit fichier XML qui y correspond, grâce à son URL elle aussi générée dynamiquement.


Par exemple, si on est sur la page "Vidéos" et qu'avant il y a la page
"'Photos" et après , il y a la page "Témoignages", cela donne un
fichier XML dans le genre :

<xml>

    

     <current id= "Videos" />

     <next id="../id/Temoignages" />

</xml>


Le petit bouton Flash va repérer l'URL http://www.lesite.com/id/ Videos
et va comprendre qu'il faut qu'il aille chercher le fichier XML à l'URL http://www.lesite.com/xml/lefichier.xml'open&idpage ="Videos"

En théorie.


Dans Flash, j'ai commencé par lier un fichier XML statique à mes deux boutons pour les premiers tests.

Maintenant, il faut que je remplace la valeur du "getURL" des boutons par quelque chose qui viendrait :
<li>pour le bouton précédent, lire le premier noeud et récupérer l'attribut id,</li><li>pour le bouton suivant, lire le 3e noeud et récupérer l'attribut id.</li>
Certes cela est sûrement simple, mais voilà où je bloque :

Je sais compter le nombre de noeuds dans le XML, je sais faire un "trace" pour sortir ce qu'il contient, mais je ne sais pas cibler un noeud en
particulier et le balancer dans un getURL !

C'est déjà une première étape à passer...


Ensuite, je devrai coupler la méthode de récupération d'URL avec le
chargement du fichier XML pour le rendre lui aussi sensible à l'URL en
cours...
En gros, quelque chose du type :
NavXML.load("../id/fichier.xml'open&idpage="IDdynamique");

Voilà, si quelqu'un a quelques minutes pour m'aider sur la première étape, le getURL qui récupère les noeuds dans le XML, ça serait fantastique !

En retour, je ne promets rien de technique, mais je peux donner des conseils en ergonomie et en design, et ce avec plaisir !

Marie

2 réponses

Messages postés
1511
Date d'inscription
samedi 8 décembre 2001
Statut
Modérateur
Dernière intervention
11 juin 2009

Salut,

Je trouve que tu te prends grave la tete là. J'ai pas tout suivi de tes explications, mais je pense avoir compris ce que tu demandais...

Je te conseille de faire un xml comme ça plutot :
<xml>
<contenu>
    
     <current id="Videos" />
     <next id="../id/Temoignages" />
</contenu>
</xml>

Ca a l'air de rien, mais les noeuds principaux sont toujours plus compliqués à choper que leur contenu.
Et dans l'exemplee du dessus, le noeud principal devient "contenu" et non "previous".

Ensuite sous flash, ca va donner ça la recuperation du xml (version as1, pas prise de tete)

myXML = new XML();
myXML.ignoreWhite = true;
myXML.onLoad = function(flag) {
    if (flag) {
        i=0;
        x = myXML.firstChild; // C'est là que tu places le pointeur xml sur le noeud "contenu"
        myprevious = x.childNodes[0].attributes.id;

        mycurrent = x.childNodes[1].attributes.id;

        mynext = x.childNodes[2].attributes.id;

     }
}
myXML.load("mon_fichier.xml"); //  l'adresse de ton fichier XML

trace( "j'ai trouvé : "+myprevious+", "+mycurrent +", "+mynext );
Messages postés
4
Date d'inscription
mercredi 9 juillet 2008
Statut
Membre
Dernière intervention
30 octobre 2008

Haha, merci Tom, c'est vrai que vu mon niveau d'expertise, je ne peux que me prendre la tête.

Merci beaucoup pour ta réponse.
C'est beaucoup plus clair pour moi maintenant.

Ensuite, si je veux insérer la variable "mynext" dans un getURL, ça devrait être :

on(release){
    getURL(mynext);
}

Correct ?