Pb chargement dynamique d'image pour galerie

Résolu
gregOnCalais Messages postés 10 Date d'inscription vendredi 27 février 2009 Statut Membre Dernière intervention 16 février 2010 - 1 avril 2009 à 22:11
cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 - 3 avril 2009 à 12:11
bonjour,


je souhaite créer une galerie photo dont les vignettes s'afficheraient dynamiquement !

je m'explique, a chaque lancement, par l'intermédiaire d'un php, je construis le fichier xml suivant :


<?xml version="1.0" encoding="UTF-8" ?>

<dossiers>

   

        <mois nom="fevrier" >

           

           

           

           

           

        </mois>

        <mois nom="janvier" >

           

           

           

        </mois>

   

</dossiers>


de cette manière pas besoin de l' écrire en dur, tout est automatique, plus qu'as placer les photos dans les sous-dossiers.

j'en arrive donc là ou je coince.

je souhaite pouvoir instancier n vignettes, ou n représente les photos.

alors pour la récupération des informations j'avais d'abord écris cela :


myXML = new XML();

myXML.ignoreWhite = true;

myXML.load("galeriePhoto.xml");


myXML.onLoad = function(reussis) {

    if (reussis) {

        i = 0;

        j = 0;

        k = 0;

        x = myXML.firstChild;

        var mois:Array = new Array();

        var image:Array = new Array();

        while (x.childNodes[i] != undefined) {

            while (x.childNodes[i].childNodes[j] != undefined){

                mois[j] = x.childNodes[i].childNodes[j].attributes.nom;

                while (x.childNodes[i].childNodes[j].childNodes[k] != undefined){

                    image[j,k] = x.childNodes[i].childNodes[j].childNodes[k].attributes.nom;

                    trace (image[j,k]);

                    k++;

                }

                j++;

            }

            i++;

        }


        trace("");

        trace(i+" années trouvées");

        trace(j+" mois trouvés");

        trace(k+" images trouvés");

    }


mais peu fructueux...

je me suis retrouvé coincé...

à savoir que je suis en AS2.

il y as pas mal de chose sur le net mais je n'arrive pas à trouver une solution.


je vous remercie d'avance pour votre aide.

Pourquoi faire Simple,
Quand on peut faire compliqué

3 réponses

cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 2
3 avril 2009 à 12:11
rebonjour,

dans ton cas, je me demande si le plus simple ce n'est pas de faire une recherche dans les codes de flashkod.
Des sources de galerie dynamique avec xml il y en a plein...
Pourquoi vouloir réinventer la roue... surtout si la roue tourne déjà mieux ailleurs

Sans doute que les sources que tu trouveras ne feront pas exactement ce que tu veux, mais au moins tu auras une bonne base de travail.
Si tu as des questions a ce moment là, reviens les poser... mais là, je vais pas t'expliquer comment faire parce que ce serait long... très long...

@+
3
cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 2
2 avril 2009 à 10:34
Bonjour,

tu n'es pas loin de la solution pourtant...
voici un script fonctionnel pour ton probleme. tu constateras qu'il est tres similaire au tiens

2 remarques :
* Essaye de typer tes variables, c'est un bon exercice, surtout si tu compte passer un jour à l'AS3 qui impose le typage de toutes les variables, fonctions,...
* Regarde du coté de XPATHApi de flash ou du package com.xfactorstudio.xml.xpath (http://www.xfactorstudio.com/) très utile pour les manipulations de xml

        var myXML:XML = new XML();
        myXML.ignoreWhite = true;
        myXML.load("galeriePhoto.xml");
        myXML.onLoad = function(reussis:Boolean) {
        if (reussis) {
            var i:Number = 0;
            var j:Number = 0;
            var k:Number = 0;
            var totalImages:Number=0
            var x:XMLNode = this.firstChild;
            var mois:Array = new Array();
            var image:Array = new Array();
            while (x.childNodes[i] != undefined) {
                while (x.childNodes[i].childNodes[j] != undefined){
                    mois[j] = x.childNodes[i].childNodes[j].attributes.nom;
                    k = 0
                    image[j]=new Array()
                    while (x.childNodes[i].childNodes[j].childNodes[k] != undefined){
                        image[j].push(x.childNodes[i].childNodes[j].childNodes[k].attributes.nom);
                        trace (image[j][k]);
                        k++;
                        totalImages++
                    }
                    j++;
                }
                i++;
            }
            trace("");
            trace(i+" années trouvées");
            trace(j+" mois trouvés");
            trace(totalImages+" images trouvés");
        }

@+
0
gregOnCalais Messages postés 10 Date d'inscription vendredi 27 février 2009 Statut Membre Dernière intervention 16 février 2010
3 avril 2009 à 12:00
Je te remercie, effectivement le souci de récupération des données est résolu,
maintenant vois-tu ? je souhaite faire en sorte que ces images soient instanciées de manière dynamique ! obtenir une galerie photo en somme.
bien évidement ici le xml joue son rôle !
mais je n'ai pas la moindre idée de la manière d'entreprendre la chose.

évidement une boucle s'impose, mais comment gérer la disposition ?
et quelle fonction utiliser pour "appeler" les objets 'loader' ?

si tu as une idée ?

Pourquoi faire Simple,
Quand on peut faire compliqué
0
Rejoignez-nous