AS2 affichage de données suivantes et précédentes dans une galerie dynamique via

Résolu
AOE_angelofdarkness
Messages postés
53
Date d'inscription
mercredi 11 janvier 2006
Statut
Membre
Dernière intervention
14 décembre 2010
- 20 avril 2010 à 11:05
AOE_angelofdarkness
Messages postés
53
Date d'inscription
mercredi 11 janvier 2006
Statut
Membre
Dernière intervention
14 décembre 2010
- 28 avril 2010 à 15:46
Bonjour tout le monde :)

Aujourd'hui mon problème est le suivant. Pour faire simple, j'ai un genre de galerie. Flash récupère les variables d'un xml et affiche par rapport à des attributs(le tout dans un tableau array). Le truc c'est qu'il affiche les images 4 par 4 le tout sur deux lignes. (donc 8 images en tout).
Je voudrais maintenant créer un bouton qui va chercher dans le xml les 8 entrées suivantes ou en tout cas les données qui restes pour afficher de la même façon 4 sur une ligne et les 4 suivantes sur la ligne d'en dessous etc...

Pour le code voila déjà ce que j'ai fait :
for(z=0;z<8;z++)
{			
this.clipbase.duplicateMovieClip("cible"+z, z);
this["cible"+z].cible.loadMovie(tableauxml[z][1]);
clipbase._visible=false;

Numligne = int(z/4);
NumColonne = z - (Numligne*4);
this["cible"+z]._x = 298 + (NumColonne*85);
this["cible"+z]._y = 567 + (Numligne*48);


Donc ca fonctionne bien, le xml est bien chargé, les 8 premières images s'affichent correctement, mais je bloque sur l'instruction du bouton suivant et précédent pour afficher les données suivantes ou précédentes du xml.

Voilou, j'espère que c'est clair. Si vous avez une idée ou une solution...

Merci beaucoup d'avance. ;)

20 réponses

AOE_angelofdarkness
Messages postés
53
Date d'inscription
mercredi 11 janvier 2006
Statut
Membre
Dernière intervention
14 décembre 2010

28 avril 2010 à 15:46
Bon ayé ^^ J'ai la solution !
Merci à Phn qui m'a bien aidé et évidement un grand merci aussi à BBFUNK01 qui m'a beaucoup aidé également ^^

Donc pour ceux que ça intéresseraient :
removeMovieClip(_parent["cible"+z]);


Voila, là réponse n'est souvent pas bien loin mais le tout est d'avoir la bonne syntaxe.

Merci encore ^^
3
AOE_angelofdarkness
Messages postés
53
Date d'inscription
mercredi 11 janvier 2006
Statut
Membre
Dernière intervention
14 décembre 2010

26 avril 2010 à 10:14
Bon pour l'instant j'ai utilisé une solution qui n'est pas optimum mais qui a le mérite de fonctionner. J'utilise une image supplémentaire avec un XML supplémentaire.

Si vous avez d'autres idées, je suis preneur ;)
0
BBFUNK01
Messages postés
1310
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
6
26 avril 2010 à 13:36
Hello,

en fait il faudrait que tu utilises un removeMovieClip() sur les clips chargés lorsque tu veux afficher tes données précédentes ou suivantes. Ensuite tu charges les données précédentes ou suivantes en modifiant le ciblage de tes noeuds dans ton xml, en gros tu cibles les huit données précédentes ou les huit données suivantes.

A plus,

BBFUNK01
0
AOE_angelofdarkness
Messages postés
53
Date d'inscription
mercredi 11 janvier 2006
Statut
Membre
Dernière intervention
14 décembre 2010

26 avril 2010 à 13:44
Merci ^^

Justement je viens de résoudre un autre problème avec cette méthode :) Je vais essayer de l'appliquer sur mon premier problème. Par contre Je voudrais que au click sur un clip, il applique le code suivant.

for(z=0;z<8;z++){
       this["cible"+z].removeMovieClip();
}


Donc de deux choses l'une je dirais. J'ai mon clip, et un bouton dans ce clip. Pour l'un comme pour l'autre je n'arrive pas à trouver la syntaxe pour que au click, le code soit lancé. Une idée ? :)

Merci encore pour cette réponse ^^
0

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

Posez votre question
BBFUNK01
Messages postés
1310
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
6
26 avril 2010 à 19:14
Re,

à mon avis ceci serait plus logique :

tonClip.onrelease = function(){
this.removeMovieClip("cible"+z);
}


mais tu peux essayer sans le "this", ça marche aussi.

BBFUNK01
0
AOE_angelofdarkness
Messages postés
53
Date d'inscription
mercredi 11 janvier 2006
Statut
Membre
Dernière intervention
14 décembre 2010

27 avril 2010 à 08:22
Re,

J'y arrive pas :(
Je pense que je devrais mettre le code sur mon bouton à l'intérieur de mon clip mais je n'arrive pas à placer les _parent. ou autre ^^;
0
AOE_angelofdarkness
Messages postés
53
Date d'inscription
mercredi 11 janvier 2006
Statut
Membre
Dernière intervention
14 décembre 2010

27 avril 2010 à 09:34
En fait pour être précis. J'ai un clip, dans lequel j'ai un bouton, dans lequel j'ai un clip. Je pense que c'est un problème de ciblage. Quand je fais :

monclip.monbouton.onRelease = function(){
trace ("toto");
}


Déjà ici ca ne fonctionne pas. A contrario si je fais :

monclip.onRelease = function(){
trace ("toto");
}

ca fonctionne, mais le scénario contenu dans le clip ne fonctionne plus.
0
BBFUNK01
Messages postés
1310
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
6
27 avril 2010 à 10:46
Hello,

tu mets bien ton code sur la scène principale qui contient ton clip (qui lui-même contient ton bouton) ?
Si c'est le cas et que tu mets un "onRelease" sur ton clip et sur le bouton contenu dans ton clip, je pense que le "onRelease" sur le bouton ne marchera pas dans la mesure où ce sera le "onRelease" sur ton clip qui sera interprété même si tu es sur ton bouton.
Solution aléatoire de dépannage :
Lorsque tu charges ton clip sur la scène, tu peux essayer de charger en parallèle le bouton, ton bouton sera alors au même niveau que ton clip, et le ciblage sera peut-être plus facile à gérer de cette manière.
Mais il est vrai que ce n'est pas la solution la plus propre, le mieux étant effectivement de parvenir à cibler correctement les éléments contenus dans ton clip (je sais : plus facile à dire qu'à faire...).
Fais des tests en essayant moultes solutions et en faisant des trace() pour suivre les éléments, au bout d'un moment ça marchera.
Si vraiment tu galères redis-moi et on essayera de regarder ensemble.

BBFUNK01
0
AOE_angelofdarkness
Messages postés
53
Date d'inscription
mercredi 11 janvier 2006
Statut
Membre
Dernière intervention
14 décembre 2010

27 avril 2010 à 12:31
Apparemment on ne peut pas utiliser le .removeMovieClip sur un clip qui a un rollover... Je pense donc que la solution réside dans le fait de placer directement le code sur le bouton, à l'interieur du clip, mais là je coince

on (release) {
for(z=0;z<8;z++)
{			
_parent.clipdebasedupliqué.removeMovieClip["cible"+z];}
}


Evidemment ca ne fonctionne pas ^^;
0
BBFUNK01
Messages postés
1310
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
6
27 avril 2010 à 13:44
Re,

essaie comme ça :
on (release) {
for(z=0;z<8;z++)
{			
removeMovieClip(["cible"+z]);}
}


ou comme ça :
on (release) {
for(z=0;z<8;z++)
{			
removeMovieClip("cible"+z);}
}


BBFUNK01
0
AOE_angelofdarkness
Messages postés
53
Date d'inscription
mercredi 11 janvier 2006
Statut
Membre
Dernière intervention
14 décembre 2010

27 avril 2010 à 15:27
Bon j'ai essayé différentes choses, rien n'y fait...Mes images ne veulent pas disparaître...
0
BBFUNK01
Messages postés
1310
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
6
27 avril 2010 à 18:32
Re,

essaie de reprendre ton code de A à Z, tout en faisant des trace(), si ça se trouve l'erreur qui fausse ton anim est minuscule (c'est souvent le cas).

Courage :)

BBFUNK01
0
AOE_angelofdarkness
Messages postés
53
Date d'inscription
mercredi 11 janvier 2006
Statut
Membre
Dernière intervention
14 décembre 2010

27 avril 2010 à 20:57
Est-ce que ca pourrait être une histoire de profondeur ? Quand je duplique sur ma scène principale j'utilise ca :

this.monclipdebase.duplicateMovieClip("cible"+z, z);
0
AOE_angelofdarkness
Messages postés
53
Date d'inscription
mercredi 11 janvier 2006
Statut
Membre
Dernière intervention
14 décembre 2010

28 avril 2010 à 10:13
Couou ^^

J'ai repris mon code. Par contre je bloque sur un truc tout bête sans doute et je pense qu'une grande partie de mon problème vient de là. Je n'arrive pas à tracer ("cible"+z) qui se trouve un niveau au dessus dans mon animation.
Quand il s'agit d'une variable simple (on va dire), je trace avec un _parent, là, pas de problème. Mais quand je trace plus complexe type :
trace (_parent("cible"+z));


Là, je n'arrive pas à récupéré la valeur, soit "cible"suivit de son numéro. J'ai un undefined

Une idée sur le sujet ? :)
0
BBFUNK01
Messages postés
1310
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
6
28 avril 2010 à 11:40
Hello,

j'ai le même problème pour la réalisation de mon diaporama :
je fais un duplicateMovieClip sur un clip afin de charger les miniatures de mon diaporama, j'utilise ensuite MovieClipLoader pour charger les images (miniatures). Dans le onLoadInit du MovieClipLoader j'essaie de tracer le numéro de chacun de mes clips dupliqués (histoire en fait de pouvoir recentrer l'image chargée dans le clip), le problème c'est que le onLoadInit de mon MovieClipLoader ne démarre qu'une fois tous les clips dupliqués, par conséquent, lorsque je fais mon trace :
trace("tn"+i);

cela me renvoie uniquement le numéro du dernier noeud de mon xml (soit "tn16" si j'ai 16 images à charger).
Je n'ai pas encore trouvé comment résoudre le problème.
A priori cela doit être le même type de problème pour toi.
Je vais me répéter mas bon ; essaie de faire des trace() à divers endroits de ton code afin de voir comment celui-ci construit l'animation, tu pourras ainsi mieux identifier d'où vient le problème, et pourquoi le trac() sur tes clips dupliqués ne fonctionne pas.
Mais tu devrais au moins parvenir à tracer le dernier numéro de tes clips.

BBFUNK01
0
BBFUNK01
Messages postés
1310
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
6
28 avril 2010 à 11:44
Re,

après avoir relu ton code, essaie simplement comme ça pour voir :
for(z=0;z<8;z++)
{			
this.clipbase.duplicateMovieClip("cible"+z, z);
this["cible"+z].cible.loadMovie(tableauxml[z][1]);
                trace("cible"+z);//tu devrais obtenir ceci : "cible+le numéro de chacun de tes clips;
clipbase._visible=false;

Numligne = int(z/4);
NumColonne = z - (Numligne*4);
this["cible"+z]._x = 298 + (NumColonne*85);
this["cible"+z]._y = 567 + (Numligne*48);


BBFUNK01
0
AOE_angelofdarkness
Messages postés
53
Date d'inscription
mercredi 11 janvier 2006
Statut
Membre
Dernière intervention
14 décembre 2010

28 avril 2010 à 11:50
Re,

Oui oui effectivement quand je trace
trace("cible"+z);

Pas de problème, je récupère toute mes cibles, c'est quand je suis dans un clip, donc un niveau en dessous que je n'arrive pas à récupérer mes cibles.
0
AOE_angelofdarkness
Messages postés
53
Date d'inscription
mercredi 11 janvier 2006
Statut
Membre
Dernière intervention
14 décembre 2010

28 avril 2010 à 11:58
Pour ton problème, tu fais une boucle pour récupérer tes diapo ?
0
BBFUNK01
Messages postés
1310
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
6
28 avril 2010 à 12:06
Re,

yes, je fais une boucle pour dupliquer mes clips, et dans cette boucle je charge mes images en appelant ma fonction MovieClipLoader().
Le problème c'est que mes images commencent à être chargées seulement après duplicata des clips, donc impossibilité dans le onLoadInit de tracer les coordonnées de chacun de mes clips, donc impossibilité de recentrer les images chargées dans ces clips.
La solution (peu pratique mais fonctionnelle) que j'ai utilisée pour palier au problème :
je mets un fond noir au format du clip sous chacune de mes images, ainsi les images sont centrées, mais ça oblige à faire une petite manipulation sur chaque image... :-)

BBFUNK01
0
AOE_angelofdarkness
Messages postés
53
Date d'inscription
mercredi 11 janvier 2006
Statut
Membre
Dernière intervention
14 décembre 2010

28 avril 2010 à 13:01
ouais effectivement c'est pas l'idéal, mais si ca marche en attendant de trouver mieux...
Moi toujours pas moyen de tracer ce truc...
0