Galerie image dynamique chargement variable par txt

flatcedrik Messages postés 24 Date d'inscription mardi 19 février 2008 Statut Membre Dernière intervention 17 mai 2011 - 9 mars 2011 à 18:16
flatcedrik Messages postés 24 Date d'inscription mardi 19 février 2008 Statut Membre Dernière intervention 17 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

7 réponses

BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
9 mars 2011 à 18:30
Hello,

plutôt que de stocker les urls de tes images dans un fichier .txt stocke les plutôt dans un fichier .xml.

A plus ,

BBFUNK01

//C'est en forgeant qu'on devient forgeron... ;-) ;

musichrono
0
flatcedrik Messages postés 24 Date d'inscription mardi 19 février 2008 Statut Membre Dernière intervention 17 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.
0
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
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... ;-) ;

musichrono
0
yasdar Messages postés 121 Date d'inscription mercredi 12 janvier 2011 Statut Membre Dernière intervention 19 mai 2012
10 mars 2011 à 10:53
c'est un fichier xml qu'il te faut
voir l'exemple :
http://www.flashkod.com/codes/GALERIE-IMAGES-AVEC-TITRES-COMMENTAIRES_52725.aspx
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
flatcedrik Messages postés 24 Date d'inscription mardi 19 février 2008 Statut Membre Dernière intervention 17 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 :

<gallerie="1" legende="blablabla" nbtotal="9" />
<gallerie="2" legende="blabla" nbtotal="7" />


.
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 ...
0
flatcedrik Messages postés 24 Date d'inscription mardi 19 février 2008 Statut Membre Dernière intervention 17 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 ?
0
flatcedrik Messages postés 24 Date d'inscription mardi 19 février 2008 Statut Membre Dernière intervention 17 mai 2011
11 mars 2011 à 12:41
pour reformuler j'aimerais déclarer ma variable nbtotal autrement qu'en local, comment faire?
0
Rejoignez-nous