Galerie image dynamique chargement variable par txt
flatcedrik
Messages postés24Date d'inscriptionmardi 19 février 2008StatutMembreDernière intervention17 mai 2011
-
9 mars 2011 à 18:16
flatcedrik
Messages postés24Date d'inscriptionmardi 19 février 2008StatutMembreDernière intervention17 mai 2011
-
11 mars 2011 à 12:41
Pour un site d'image, j'ai créée des galeries dynamiques avec mes miniatures sur mon movie clip principal.
Quand on clique sur une miniature, un movie clip se lance (un fade in/out) chargeant ainsi la galerie correspondant à la miniature.
La galerie est composée d'un bouton suivant et un bouton précédant pour naviguer de photos en photos.
Pour pouvoir mettre à jour mon site sans toucher au fichier flash, j'ai donc crée un fichier txt dans lequel est noté l’effectif d'images dans chaque galerie.
j'ai créé une fonction chargement total tel :
function chargementtotal(){
var txtch = new LoadVars();
txtch.load(ch+"/reelles/nom.txt" );
txtch.onLoad = function(success) {
if (success) {
texte.text = txtch["total"+choose];
_root.legendes.text= txtch["legende"+choose];
}
};
}
J'ai ensuite programmé mes boutons suivant et précédant selon le nombre total de photos présentes dans la galerie.
chaque clique sur une miniature est associé à la fonction chargementtotal() et à var nbtotal:Number = parseInt(texte.text)+1; qui est censé chargé le nombre total présent dans mon fichier txt sous la forme $total*=**.
Cependant ce code ne marche jamais à la première ouverture....il semblerai que nbtotal ne se charge pas du premier coup...
en fesant un trace j'obtiens :
undefined
NaN
et quand ça marche j'obtiens :
undefined
7
Merci de votre aide
A voir également:
Galerie image dynamique chargement variable par txt
flatcedrik
Messages postés24Date d'inscriptionmardi 19 février 2008StatutMembreDernière intervention17 mai 2011 9 mars 2011 à 18:39
J'ai déjà essayé mais c'est le même résultat !!
Je ne stock pas les urls de mes images dans le fichier .txt mais juste le nombre d'images présentes dans chaque dossier : une sorte de compteur que je règle manuellement pour ne pas avoir affaire au php.
BBFUNK01
Messages postés1310Date d'inscriptionjeudi 16 juillet 2009StatutMembreDernière intervention20 juin 20146 9 mars 2011 à 19:08
Mais quel intérêt de stocker le nombre d'images dans un fichier .txt ?
Utilise un fichier .xml contenant toutes les infos dont tu as besoin sur chacune de tes images, ensuite lorsque tu chargeras ton fichier .xml dans Flash tu pourras disposer de ces infos :
- nombre de nœuds de ton fichier .xml = nombre d'images.
- noms de tes images.
- description de chacune de tes images.
- lien(s) potentiel(s) vers lesquels pointer en fonction de telle ou telle image.
A mon avis tu auras meilleur de compte d'utiliser le xml.
A plus ,
BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;
flatcedrik
Messages postés24Date d'inscriptionmardi 19 février 2008StatutMembreDernière intervention17 mai 2011 10 mars 2011 à 22:13
Merci pour ces réponses,
Pour l'exemple il est intéressant mais je suis en AS2.
Je ne souhaite pas rentrer d'autres détails que l'effectif d'images présentes dans chacune des galeries et leur légende (une légende par galerie) par souci de mise à jour.(un novice se chargera des MAJ)
J'ai donc modifié mon flash et crée un xml sous la forme :
.
Pour le code flash j'ai donc en partie :
imageIndex= -1;
function chargementtotal(){
loadxml = new XML();
loadxml.ignoreWhite = true;
loadxml.load(ch+"/photos.xml");//ch correspond à une valeur donnée précedement
loadxml.onLoad = function(Reussite) {
if (Reussite) {
var nbtotal:Number =parseInt(loadxml.firstChild.childNodes[choose-1].attributes.nbtotal)//choose correspond au choix de la galerie : si le clic est effectuer sur la miniature1 choose="1"...
_root.legendes.text= loadxml.firstChild.childNodes[choose].attributes.legende
trace(nbtotal);
}
}
}
function imageNext(){
trace(nbtotal);
_root.retour._visible=true;
BarreChargement._visible = true;
_root.legendes._visible=true;
var pc=_root.imgclip.getBytesLoaded()*100/_root.getBytesTotal();
BarreChargement._xscale=pc;
if (pc >= 100){
BarreChargement._visible =false;
};
imageIndex++ ;
if (imageIndex < nbtotal){
_root.nextbtn._visible=true;
_root.prevbtn._visible=true;
};
if (imageIndex == nbtotal){
_root.nextbtn._visible=false;
_root.prevbtn._visible=true;
};
if (imageIndex == 0){
_root.prevbtn._visible=false;
_root.nextbtn._visible=true;
};
_root.imgclip.loadMovie(ch+"/reelles/"+choose+"/"+imageIndex+".jpg");
};
En sortie j'obtiens :
undefined
9
Le trace de "nbtotal" contenu dans la fonction imageNext qui me permet de passer à l'image suivante ne fonctionne pas.
La fonction imageNext est déclenchée par un clic sur le bouton nextbtn et un clic sur le bouton nextbtn engendre la fonction chargementtotal().
Je ne vois pas mon erreur ...
flatcedrik
Messages postés24Date d'inscriptionmardi 19 février 2008StatutMembreDernière intervention17 mai 2011 11 mars 2011 à 12:27
Apparement ma variable que je recupère de mon xml ne se stocke pas, juste après que la fonction chargementtotal est effectué cette valeur est indisponible.
Comment faire pour stocker cette variable le temps que la fonction imageNext s'exécute ?