Bonjour à tous,
je vous explique rapidos mon problème. Je veux créer une gallerie d'images par thème. 3 thèmes sont disponibles. Les images sont stockées dans un dossier et sont affichées dans le swf via un fichier XML. Les images sont chargées dynamiquement dans des clips. (Ceux-ci sont crées en dupliquant un premier clip sur la scène.) Comme le nombre d'images n'est pas le même pour les 3, ces clips sont supprimés et le nombre de clips dupliqués dépend du nombre de photos à afficher. Lorsque toutes les images sont affichées (en miniature), je voudrai que lors d'un rollover, un aperçu plus gros soit disponible. Puis après un clic, une fenêtre apparaisse avec l'image seule. Le problème est pour la récupération du nom de l'image et donc pour son lien. Je ne sais pas comment faire. J'ai essayé plusieurs solutions trouvées sur les forums, mais vu que je suis "flasheur" que depuis 4 mois en freelance, j'ai pas toujours trop compris.
Pourriez vous m'aider car là je commence à craquer ????
Je vous mets le code .
D'avance merci.
Code développé sous Flash MX 2004:
/*Les fonctions sont crées au début. Elles seront appelées par la suite lors du clic des boutons. La fonction ChargeXML(nomChoix) permet de charger les documents XML suivant le choix du thème.
Elle permet aussi de lancer une barre de chargement.
La fonction effaceMovie permet de supprimer les clips crées pour l'affichage des images, puisque le nombre d'images n'est pas le même
dans les 3 thèmes.
Enfin la fonction affichage() permet de connaitre le nombre de photos à afficher, le nombre de clips à dupliquer, et la façon de les afficher.
Le problème réside dans la création de la fonction Curseur, car je n'arrive pas à récupérer le nom de l'image.*/
myXML = new XML();
myXML.ignoreWhite = true;
var nomChoix = null; //permet d'appeler les fichiers XML correspondants au choix de l'utilisateur
var j= 0;
var lon=0;
var nom = null;
var test = null;
var numero = null;
//////////////////////////////////////DEBUT DES FONCTIONS/////////////////////////////////////////////
function Curseur(i,lon,nom,numero)
{
trace("dans curseur; boucle n° "+i);
trace("-----------------------------------------");
_root.onEnterFrame = function()
{
for(i=0;i<lon;i++)
{
_root.choixPhotos_mc["bitmap_mc"+i].onRollOver = function()
{
trace(_root.choixPhotos_mc["bitmap_mc"+i].numero);
}
_root.choixPhotos_mc["bitmap_mc"+i].onPress = function()
{
trace(nom);
getURL(nom);
}
}
}
trace("fin Curseur");
trace("-----------------------------------");
}
function effaceMovie(lon){
trace("--------");
trace("4 dans effaceMovie" );
trace("--------");
trace("lon dans effaceMovie= "+ lon);
for(i=0;i<lon;i++)
{
_root.choixPhotos_mc["bitmap_mc"+i].removeMovieClip();
}
trace("fin de 4 effaceMovie");
trace("-----------------------------------");
}
function ChargeXML(nomChoix) {
trace("--------");
trace("2 dans ChargeXML ");
trace("--------");
myXML.load("xml/"+nomChoix+".xml");
_root.onEnterFrame = function()
{
tout = myXML.getBytesTotal(); //taille totale
taille = myXML.getBytesLoaded(); //taille chargée
trace("taille = "+ taille);
trace("tout = "+ tout);
var rapport = Math.round((taille)/(tout)*100); // le pourcentage de chargement de l'image
pourcentage_txt.text = (rapport+ "%");
trace("rapport = " + rapport);
if (rapport >= 1) {
//on supprime l'évènement onEnterFrame
delete this.onEnterFrame;
}
pourcentage_txt._visible = false;
}
trace("fin 2 dans ChargeXML ");
trace("--------");
}
//////////////////////////////////////FIN DES FONCTIONS/////////////////////////////////////////////
///////////////////////////////:
//////////////////////////////
function affichage() {
myXML.onLoad = function(ok) {
if (ok) {
trace("--------");
trace("3 dans fonction principale affichage ");
trace("ok pour le chargement de la fonction XML");
trace("dans fonction XML");
var galleriev = myXML.firstChild.childNodes;
lon = galleriev.length;
trace("lon dans affichage= "+lon);
for (i = 0; i<lon; i++) {
nom = galleriev[i].attributes.nom;
trace("i= "+i);
trace("nom photos = "+nom);
test = _root.choixPhotos_mc.bitmap_mc.duplicateMovieClip(["bitmap_mc"+i],i+10);
_root.choixPhotos_mc["bitmap_mc"+i].loadMovie(nom);
_root.choixPhotos_mc["bitmap_mc"+i].numero = "truc"+i;
_root.choixPhotos_mc["bitmap_mc"+i]._xscale = _root.choixPhotos_mc["bitmap_mc"+i]._yscale /= 20;
}
Curseur(i,lon,nom,numero);
var colonne = 0;
var ligne = 0;
for (i=0; i<lon; i++) {
if (colonne == 3) {
colonne = 0;
ligne++;
}
_root.choixPhotos_mc["bitmap_mc"+i]._x = 200+(colonne*60);
_root.choixPhotos_mc["bitmap_mc"+i]._y = (-170)+(ligne*60);
colonne++;
}//fin de for
}//fin du if
else {
trace("pas ok pour le chargement de la fonction XML");
}
trace("--------");
trace("fin de onLoad 3 dans fonction principale affichage ");
}
}
cebazat_btn.onPress = function() {
effaceMovie(lon);
trace("--------");
trace("1 bouton");
trace("--------");
nomChoix = "cebazat";
pourcentage_txt._visible = true;
ChargeXML(nomChoix);
affichage();
trace("fin 1 bouton");
trace("--------");
}
gerzat_btn.onPress = function() {
nomChoix = "gerzat";
pourcentage_txt._visible = true;
ChargeXML(nomChoix);
affichage();
effaceMovie(lon);
}
paris_btn.onPress = function() {
nomChoix = "paris";
pourcentage_txt._visible = true;
ChargeXML(nomChoix);
affichage();
effaceMovie(lon);
}
Je vous mets aussi les comentaires générées dans le output.
--------
4 dans effaceMovie
--------
lon dans effaceMovie= 0
fin de 4 effaceMovie
-----------------------------------
--------
1 bouton
--------
--------
2 dans ChargeXML
--------
fin 2 dans ChargeXML
--------
fin 1 bouton
--------
--------
3 dans fonction principale affichage
ok pour le chargement de la fonction XML
dans fonction XML
lon dans affichage= 12
i= 0
nom photos = ../photos/cebazat/photo1.jpg
i= 1
nom photos = ../photos/cebazat/photo2.jpg
i= 2
nom photos = ../photos/cebazat/photo3.jpg
i= 3
nom photos = ../photos/cebazat/photo4.jpg
i= 4
nom photos = ../photos/cebazat/photo5.jpg
i= 5
nom photos = ../photos/cebazat/photo6.jpg
i= 6
nom photos = ../photos/cebazat/photo7.jpg
i= 7
nom photos = ../photos/cebazat/photo8.jpg
i= 8
nom photos = ../photos/cebazat/photo9.jpg
i= 9
nom photos = ../photos/cebazat/photo10.jpg
i= 10
nom photos = ../photos/cebazat/photo11.jpg
i= 11
nom photos = ../photos/cebazat/photo12.jpg
dans curseur; boucle n° 12
-----------------------------------------
fin Curseur
-----------------------------------
--------
fin de onLoad 3 dans fonction principale affichage
//une fois le rollOver exécuté
undefined
undefined