Bouton avec URL dynamique

cs_phoenix38 Messages postés 6 Date d'inscription dimanche 5 décembre 2004 Statut Membre Dernière intervention 6 décembre 2004 - 5 déc. 2004 à 16:29
cs_phoenix38 Messages postés 6 Date d'inscription dimanche 5 décembre 2004 Statut Membre Dernière intervention 6 décembre 2004 - 6 déc. 2004 à 18:32
Bonjour,
je réalise une gallerie pour un site et je réalise le menu en flash.
Apres avoir charger mes données dynamiquement, je duplique un MC dans lequel j'affiche les miniatures des fotos. je charge les photos dynamiquement grace à un "offset" s'incrémantant et tout se passe bien. Je duplique également un bouton ke je nomme dynamikement et c la k'intervient le pb : lorsque je défini la fonction OnRelease du bouton ainsi crée, j'utilise la syntaxe :

num = eval("_level0.photonum"+i);
eval("btrans"+i).onPress=function(){
getURL("photo_aff.php?photo_num="+num+"","photo");
}
sa fonctionne mais à mon grand désespoir à l'éxecution, flash prend en compte la derniere valeur de l'offset (i), et pas sa valeur au moment de l'execution du script. Du coup, seulement la derniere image est affiché à la place de toutes les autres...

Pouvez vous m'aider?

Voila le code complet :
while (i <= nbPhotos)
{
photoaff=eval("_level0.photosrc"+i);
duplicateMovieClip(mccible,"mccible"+i,i);
duplicateMovieClip(btrans,"btrans"+i,i+100);
eval("mccible"+i)._x=0;
eval("mccible"+i)._y=75*(i-1);
eval("btrans"+i)._x=0;
eval("btrans"+i)._y=75*(i-1);

eval("mccible"+i).loadMovie("photos/mini/"+photoaff+"");
num = eval("_level0.photonum"+i);
eval("btrans"+i).onPress=function(){
getURL("photo_aff.php?photo_num="+num+"","photo");
}
i++;
}

PHOENIX

10 réponses

pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
5 déc. 2004 à 20:48
Tu connais l'objet loadVars ? Non ?!
Ben franchement tu devrais te doccumenter dessus .. je pense que ça devrait t'interesser ! ;)

Ensuite :

eval("mccible"+i) n'est plus fonctionnel, il faut utiliser : thix["mccible"+i]

et pour finir :

while (i <= nbPhotos)
{
i++;
}

est un peu bordélique ...
Il vaudrait mieux utiliser une boucle :

for (i=0; i<=nbPhotos; i++) {
}

une fois ça fait, ton code sera bien plus lisible ...
0
cs_phoenix38 Messages postés 6 Date d'inscription dimanche 5 décembre 2004 Statut Membre Dernière intervention 6 décembre 2004
6 déc. 2004 à 17:10
soit, merci du conseil, g encore pas mal de progrès a faire. J'ai tt refait avec load vars et j'ai résolu le pb e j'avai, mais en en soulevant un otre.

photos = new LoadVars();
photos.load("photoload.php?gal_num="+gal_num+"");
var nb_max = photos["nbr"];
photos.onLoad=function(){
for (i=1;i <= nb_max;i++) //boucle infinie à ce nivo
{
loading._visible=false;
photoaff=photos["photosrc"+i];
photonum=photos["photonum"+i];
mcmain.affichage(i,photoaff,photonum);
}
}

j'arrive à acceder a toutes les données de l'objet loadvars, si je met i<=4 alor 4 fotos s'affiche et tout fonctionne correctement. Si j'affiche la valeur de nb_max avant d'entrer dans la boucle il m'affiche 4 par exemple, un entier koi. seulement kan je fait kom dans le code ci-dessus j'ai une boucle infinie ki me fait planter flash.
pouvez-vous m'aider?
merci
Phoenix
0
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
6 déc. 2004 à 17:21
var nb_max = photos["nbr"]; ne donne rien, à mon avis...
Il faut que tu le mette dans ta fonction, en première place, car il n'a pas le temps de se charger et donc sort en "undefined".

De plus, ta syntaxe n'est pas optimisée et devrait être :
var nb_max = photos.nbr;


Si j'ai bien compris ton systeme, "photo.nbr" correspond au nombre max de photos à afficher ?
Il faudrait juste que fasse :

photos = new LoadVars();
photos.load("photoload.php?gal_num="+gal_num+"");

photos.onLoad=function(){
for (i=1;i <= Photos.nbr;i++) { 
loading._visible=false;
photoaff=photos["photosrc"+i];
photonum=photos["photonum"+i];
mcmain.affichage(i,photoaff,photonum);
}
}


Alors, attention, je l'ai fait de tête, je ne garantis pas le fonctionnement, mais ça devrait aller, je pense.

Peg'
0
cs_phoenix38 Messages postés 6 Date d'inscription dimanche 5 décembre 2004 Statut Membre Dernière intervention 6 décembre 2004
6 déc. 2004 à 17:31
Bin sa revien à ce ke je fesai mais en plus propre, ms sa marche toujour pas. C vraiment bizarre kil puisse afficher la valeur de photos.nbr et kil ne puisse pas s'en servir dans la boucle... comprend pas...
Phoenix
0

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

Posez votre question
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
6 déc. 2004 à 17:36
j'ai compris !;)
essaye :
for (i=1;i <= Number(Photos.nbr);i++) { 


et dis-moi si ça fonctionne..
0
cs_phoenix38 Messages postés 6 Date d'inscription dimanche 5 décembre 2004 Statut Membre Dernière intervention 6 décembre 2004
6 déc. 2004 à 17:53
non... flash plante toujours à la compilation...
juste un truc la majuscule de photos n'est pas importante o moins ?(on sait jamais avec flash...)

Phoenix
0
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
6 déc. 2004 à 18:00
avec FlashMX, non...
Maus avec MX2004, je n'en suis pas certain !

essaye ça :
photos = new LoadVars();
photos.load("photoload.php?gal_num="+gal_num+"");

photos.onLoad=function(){
trace (Photos.nbr);
for (i=1;i <= Photos.nbr;i++) { 
loading._visible=false;
photoaff=photos["photosrc"+i];
photonum=photos["photonum"+i];
mcmain.affichage(i,photoaff,photonum);
}
}


si tu as un retour non "undefined", théoriquement, tout devrait fonctionner ...
0
cs_phoenix38 Messages postés 6 Date d'inscription dimanche 5 décembre 2004 Statut Membre Dernière intervention 6 décembre 2004
6 déc. 2004 à 18:06
c bien tout mon problème...il est "undefined"...
Phoenix
0
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
6 déc. 2004 à 18:28
alors c'est que ta variable n'est pas envoyée !
0
cs_phoenix38 Messages postés 6 Date d'inscription dimanche 5 décembre 2004 Statut Membre Dernière intervention 6 décembre 2004
6 déc. 2004 à 18:32
bin si en fait. Si tu veu g pseudo resolu le pb. Ma variable est bel e bien definie puiske je m'en sert plus loin dans le code pour stopper le défilement des images. en fait j'ai juste mis
for (i=1;i<=40;i++)
pour kil entre dans a boucle et sa a fonctionné. Je sais c pas top ms j'ai pas trouver mieux !
Phoenix
0
Rejoignez-nous