Forums Développement Multimédia

Les formations Mediabox
Les formations Mediabox

XML : chargement d'une liste d'images

Compatible ActionScript 1 et 2. Cliquer pour en savoir plus sur les compatibilités.

Article écrit le 28/08/2002 18:40.
Par damien.

A l'origine de ce tutorial, une question de Spontex, qui nous a finalement résumé la marche à suivre pour monter une galerie dynamique d'images par xml, que voici ( avec un préchargement du xml ):

Objectif :
Charger des jpeg depuis un fichier XML
Placer ces images en ligne de 3 colonnes.

Impératif : les jpeg NE doivent PAS être enregistrées en “progressif”

Fichier XML :
<gallerie>
 
  <desc nom="1.jpg" />
 
  <desc nom="2.jpg" />
 
  <desc nom="3.jpg" />
 
  <desc nom="4.jpg" />
 
  <desc nom="5.jpg" />
 
  <desc nom="6.jpg" />
 
</gallerie>
Flash

Image 1

gallerieXml = new XML();
 
gallerieXml.ignoreWhite = true;

Image 2
On charge le xml:

gallerieXml.load("gallerie.xml");

Image 3 vide

Image 4:
On fait un test pour voir si le xml est chargé:

if(!gallerieXml.loaded)
 
gotoAndPlay(3);

Image 5

//Recupération des donnees du fichier xml
 
var galleriev = gallerieXml.firstChild.childNodes;
 
var lon = galleriev.length; //nombre d'image à placer
 
for (var i = 0; i<lon; i++) {
 
var nom = galleriev[i].attributes.nom; //recupére le nom du fichier
 
// Création d'un clip vide:
 
_root.createEmptyMovieClip("bitmap_mc"+i, i+10);
 
_root["bitmap_mc"+i].loadMovie(nom); //charge le jpeg
 
_root["bitmap_mc"+i]._xscale = _root["bitmap_mc"+i]._yscale /= 50; /*réduit l'image 50 fois, dépend de vos images*/
 
}
 
// Déplacement et redimensionnement du clip conteneur:
 
var colonne = 0; //j'initialise le nombre de colonne
 
var ligne = 0; //j'initialise le nombre de ligne
 
for (i=0; i<lon; i++) {
 
if (colonne == 3) { //si colonne =3 alors on change de ligne et on reprend à la colonne 0
 
 colonne = 0;
 
 ligne++;
 
}
 
 
 
//maintenant on dispose les images à partir de x=0 et y=0
 
_root["bitmap_mc"+i]._x = colonne*40;
 
_root["bitmap_mc"+i]._y = ligne*40;
 
colonne++;
 
}
 
stop();