Bonjour à tous et toutes,
Je débute en flash et j'ai un problème pour ma galerie de photos. J'affiche une photo et les miniatures.
Le problème c'est que le onPress sur mes miniatures ne fonctionne pas et je rame sans trouver.
Merci de votre aide.
Voici mon code complet, le problème se situe dans la fonction afficherPhotos
System.useCodepage = true;
import mx.utils.Delegate;
var tailleX:Number = 660;
var tailleY:Number = 710;
var espace:Number = 10; //l'espace entre les miniatures
//espacePhotoMiniY :l'espace entre la photo et les miniatures mais
//il y aura un espace minimum de la valeur de la variable espace
var espacePhotoMiniY = 0;
var nbMiniPerLine:Number = 9; //le nombre de miniatures par ligne
var tailleMini:Number = 60;
var contenuXMLFichier:Array = new Array();
var contenuXMLLargeur:Array = new Array();
var contenuXMLHauteur:Array = new Array();
var contenuXMLFichierMini:Array = new Array();
var nbPhotos:Number;
var xml:XML;
function XMLContentLoader(url:String)
{
xml = new XML();
xml.ignoreWhite = true;
xml.onLoad = Delegate.create(this, onLoadEvent);
xml.load(url);
}
function onLoadEvent(success:Boolean):Void
{
if(success)
{
nbPhotos = xml.firstChild.childNodes.length;//récupérer le nombre de photos
for(var i:Number=0; i<nbPhotos; i++)
{
contenuXMLFichier[i]=xml.childNodes[0].childNodes[i].attributes.fichier;
contenuXMLLargeur[i]=xml.childNodes[0].childNodes[i].attributes.largeur;
contenuXMLHauteur[i]=xml.childNodes[0].childNodes[i].attributes.hauteur;
contenuXMLFichierMini[i]=xml.childNodes[1].childNodes[i].attributes.fichier;
}
afficherPhotos(nbPhotos,contenuXMLFichier,contenuXMLLargeur,contenuXMLHauteur,contenuXMLFichierMini)
}
}
function afficherPhotos(nPhotos:Number,cXMLFichier:Array,cXMLLargeur:Array,cXMLHauteur:Array,cXMLFichierMini:Array)
{
var largeurP:Number = Number(cXMLLargeur[0]);
var hauteur:Number = Number(cXMLHauteur[0]);
var xMini:Number;
var ligne:Number = 0;
var col:Number = 0;
/*---------------------------------------------
Définition de l'espace Photo
---------------------------------------------*/
_root.niveauPhoto = 1000;
_root.FdPho = attachMovie("FondPhotoClp","FdPho",niveauPhoto);
FdPho._x = (tailleX - largeurP)/2;
FdPho._y = espace;
FdPho.loadMovie(cXMLFichier[0]);//On affiche la 1ere photo
/*---------------------------------------------
Définition de l'espace miniatures
---------------------------------------------*/
_root.niveauMini = 2000;
/*Pour gérer automatiquement le nombre de miniatures par ligne,
il faut enlever les commentaires de la ligne suivante qui calculera
le maximum de miniatures sur la 1ere ligne etc...*/
//nbMiniPerLine = Math.round(tailleX/(espace + tailleMini));
xMini = (tailleX - (nbMiniPerLine*(tailleMini+espace)))/2 + espace/2; //position de la premiere miniature
for(var i:Number=0; i<nPhotos; i++)
{
if(i==0)
{
_root.attachMovie("MiniPhotoClp","mini"+i,niveauMini+i);
_root["mini"+i]._x = xMini;
_root["mini"+i]._y = hauteur+espace*2 + espacePhotoMiniY;
_root["mini"+i].loadMovie(cXMLFichierMini[i]);
_root["mini"+i].onPress = function()
{
trace("ok"); // ne fait rien du tout.....
}
}
else
{
if(i%nbMiniPerLine==0)//On a atteind le nbre de photos par ligne, on passe a la ligne suivante
{
ligne = ligne+tailleMini+espace;
col = col+tailleX-2*xMini+espace;
}
_root.Mini = attachMovie("MiniPhotoClp","mini"+i,niveauMini+i);
_root["mini"+i]._x = xMini + tailleMini*i-col+espace;
_root["mini"+i]._y = hauteur+espace*2+ligne + espacePhotoMiniY;
_root["mini"+i].loadMovie(cXMLFichierMini[i]);
_root["mini"+i].onPress = function()
{
trace("ok");//ne fait rien du tout
}
col = col - espace;
}
}
}
XMLContentLoader("../xml/sanguines.xml");
RHINO