DUPLICATE d'un bandeau avec photos miniatures [Résolu]

Signaler
Messages postés
77
Date d'inscription
vendredi 8 octobre 2004
Statut
Membre
Dernière intervention
28 février 2006
-
Messages postés
77
Date d'inscription
vendredi 8 octobre 2004
Statut
Membre
Dernière intervention
28 février 2006
-
Bonjour, je vais vous exposer mon problème par ordre de difficulté :



1) J'ai fait un bandeau de présentation de photos en miniatures qui
défile selon la position en _x de la souris. J'aimerai qu'il défile à
l'infini, l'orsqu'il arrive à la fin, il revient au début.





2) Il y a une chtite difficulté. Toutes mes miniatures sont importées
dynamiquement, et le cadre de la miniature est créée par un
duplicatemovieclip, comme ça, si j'ai 150 miniatures, je ne vais pas
copier bêtement mes 150 cadres. Mon cadre d'origine (qui fait bouton
aussi) s'appelle photo_btn, et je voudrais (si j'ai 100 miniatures à afficher) avoir que les clips photo_btn1 à photo_btn100
et non pas celui d'origine. J'ai essayé tous les remove.monmc, erase,
destroy, burn... qui ne marchent que sur des clips générés par
duplicate ou attach et non pas des clips "physiques".


3)Est-ce que les boucles for(...) sont moins efficaces qu'une suite de variables stupides?, ex :

pelicula.photo_btn1.nom = photo1;

pelicula.photo_btn2.nom = photo2;

pelicula.photo_btn3.nom = photo3;

pelicula.photo_btn4.nom = photo4;



>>>>>devient>>>>>



for (var i=1 ; i<=4; i++) {



ref=_level0.pelicula["photo_btn"+i]



ref.nom = "photo"+i;


}




Bon c'est un peu culoté de demander tout ça quand meme !!!!

Merci beaucup

9 réponses

Messages postés
77
Date d'inscription
vendredi 8 octobre 2004
Statut
Membre
Dernière intervention
28 février 2006

oui oui. Merci beaucoup pour ta réponse. J'ai fait un tour sur certains
forums et j'ai trouvé des trucs. Du coup je refais tout depuis le
début. J'aurai dû commencer par ça mais j'avais la flemme. Merci encore. c cool
Messages postés
606
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
13 décembre 2006

1/ Ben c simple, quand tu arrive a la fin tu lui dis d'afficher les premieres et inversement.



2/ Fais des attachMovie a la place de tes duplicateMovieClip. Ca
solutionnera le probleme, et en plus il parait que attachmovie est
mieux optimisé que duplicate.



3/ La tu trippes. Faut pas abuser non plus ! Mets ta boucle for c
une question de bon sens. Cela dit ref sert a rien : mets directement :

for (var i=1 ; i<=4; i++) {



_level0.pelicula["photo_btn"+i].nom = "photo"+i;


}



et je comprends pas non plus pqoi tu rajoutes un _level0..?
Messages postés
77
Date d'inscription
vendredi 8 octobre 2004
Statut
Membre
Dernière intervention
28 février 2006

M'en vais essayer.


Pour le level0 je sais pas, on m'a conseillé comme ça mais j'en vois pas l'intérêt. Je l'ai fais parceque c'est qqn plus balaise que moi, donc je fais ce qu'on e dit.

Et pour la question sur la boucle, comme elle ne marche pas et que la suite stupide tapée à la main marche, je me demandai si il y a des limites aux boucles.

J'essaye tout de suite et pis je reviens.

merci merci !!!
Messages postés
77
Date d'inscription
vendredi 8 octobre 2004
Statut
Membre
Dernière intervention
28 février 2006

Ok, déjà, il y a un début de résultat. Ca le fait mieux avec attachmovie, et sans le level0 (qui sert juste à ce que ça marche pas).

Il y a juste l'histoire :
1/ Ben c simple, quand tu arrive a la fin tu lui dis d'afficher les premieres et inversement.

J'ai pas trop pigé. Voila le code que j'ai. (on m'a mis sur une anim qui était en cours donc je suis un peu "dans le meme cas que vous")

if (done.substr(0, 1) == '1') {
dim_x = 404;
dim_pelicula = pelicula._width;
for (var i = 1; i<=50; i++) {
pelicula["photo_btn"+i].nom = "photo"+i;
pelicula["photo_btn"+i].id = "id"+i;
pelicula["photo_btn"+i].titre = "titre"+i;
pelicula["photo_btn"+i].photographe = "photographe"+i;
pelicula["photo_btn"+i].taille = "taille"+i;
pelicula["photo_btn"+i].categ1 = "categ1"+i;
pelicula["photo_btn"+i].categ2 = "categ2"+i;
pelicula["photo_btn"+i].idcat = "idcat"+i;
}
//>>>>>>>>>>>>>>duplication de la pélicule
pelicula.duplicateMovieClip("pelicula1", 1);
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
for (var i = 1; i<=50; i++) {
pelicula["photo_btn"+i].nom = "photo"+i;
pelicula["photo_btn"+i].id = "id"+i;
pelicula["photo_btn"+i].titre = "titre"+i;
pelicula["photo_btn"+i].photographe = "photographe"+i;
pelicula["photo_btn"+i].taille = "taille"+i;
pelicula["photo_btn"+i].categ1 = "categ1"+i;
pelicula["photo_btn"+i].categ2 = "categ2"+i;
pelicula["photo_btn"+i].idcat = "idcat"+i;
}
pelicula1._x = pelicula._x+dim_pelicula;
pelicula1._y = 0;
} else {
gotoAndPlay(2);
}

Il y a forcément un truc qui se fait mal parce qu j'apercois mes vignettes seulement lorsque qu'il n'y a qu'une partie de l'anim qui est affichée (impossible d'afficher première vignette et dernière vignette en même temps).

En tou K, giga merci
Messages postés
606
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
13 décembre 2006

Ce code la il ne sert qu'à l'initialisation. Il faut aussi trouver le
code qui deplace les images : un truc du style onMouseMove ou quelque
chose comme ça, et la il faut lui rajouter des conditions et les
actions associées.
Messages postés
77
Date d'inscription
vendredi 8 octobre 2004
Statut
Membre
Dernière intervention
28 février 2006

Pour déplacer mon bandeau j'ai ce code (qui va bien d'ailleurs)



onClipEvent (enterFrame) {

if (_root.stare) {

_parent.vitesse = -1*(_root._xmouse-_parent.dim_x/2)/30;

} else {

_parent.vitesse = 1;

}

_parent.pelicula._x += _parent.vitesse;

if ((_parent.pelicula._x>0) and (_parent.pelicula._x<_parent.dim_x)) {

_parent.pelicula1._x = _parent.pelicula._x-_parent.dim_pelicula;

} else {

if (_parent.pelicula._x+_parent.dim_pelicula<0) {

_parent.pelicula._x += _parent.dim_pelicula;

}

if (_parent.pelicula._x>_parent.dim_x) {

_parent.pelicula._x -= _parent.dim_pelicula;

}

_parent.pelicula1._x = _parent.pelicula._x+_parent.dim_pelicula;

}

}





C'est pour dupliquer mon bandeau que ça chie. Vous avez des idées ?
Messages postés
606
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
13 décembre 2006

Euh... Le code n'est pas tres bien commmenté quand meme.

Verifie deja que ton deuxieme bandeau (pelicula1) est bien créé.

Puis c cettepartie qu'il faut changer pour l'affichage du deuxieme bandeau :

if ((_parent.pelicula._x>0) and (_parent.pelicula._x<_parent.dim_x)) {

_parent.pelicula1._x = _parent.pelicula._x-_parent.dim_pelicula;

} else {

if (_parent.pelicula._x+_parent.dim_pelicula<0) {

_parent.pelicula._x += _parent.dim_pelicula;

}

if (_parent.pelicula._x>_parent.dim_x) {

_parent.pelicula._x -= _parent.dim_pelicula;

}

_parent.pelicula1._x = _parent.pelicula._x+_parent.dim_pelicula;

}



Le reste du code doit changer aussi parce qu'il faut faire bouger les deux bandeaux :


if (_root.stare) {

_parent.vitesse = -1*(_root._xmouse-_parent.dim_x/2)/30;

} else {

_parent.vitesse = 1;

}







Mais bon voila ca me soule de rentrer dans le code, surtout que c meme
pas le tien. Et perso je le referais ca serait plus simple.



Rq : dans ton code tu fais deux fois la meme chose a la suite :

for (var i = 1; i<=50; i++) {
pelicula["photo_btn"+i].nom = "photo"+i;
pelicula["photo_btn"+i].id = "id"+i;
pelicula["photo_btn"+i].titre = "titre"+i;
pelicula["photo_btn"+i].photographe = "photographe"+i;
pelicula["photo_btn"+i].taille = "taille"+i;
pelicula["photo_btn"+i].categ1 = "categ1"+i;
pelicula["photo_btn"+i].categ2 = "categ2"+i;
pelicula["photo_btn"+i].idcat = "idcat"+i;
}

ce qui ne sert a rien du tout
Messages postés
77
Date d'inscription
vendredi 8 octobre 2004
Statut
Membre
Dernière intervention
28 février 2006

Oki, merci pour ta réponse, j'ai cherché un code pour faire bouger en fonction de la position de la souris (pas trop compliqué), il est plus court. Enfin, là n'est pas le problème.

Avant que je reprenne le bandeau, il n'y avais meme pas de boucle, ni meme de duplicate movie. Il y avait 100 vignettes, toutes nommées manuellement (photo_btn1 , photo_btn2...jusqu'à 100) Donc là, je reprends tout depuis le début afin de pouvoir automatiser un peu.

Le truc qu'il me manque et que je vous demande, c'est de savoir comment dupliquer le bandeau pelicula à l'infini : quand on a la souris à droite, il défile à l'infini (pareil à gauche évidemment).
Je sais dupliquer un élément et le positionner n'importe ou mais faire un défilement à l'infini j'ai du mal à voir par ou il faut s'y prendre.

Si vous avez un tuto, une aide, je suis preneur.

Merci beaucoup
Messages postés
606
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
13 décembre 2006

Ok. Il ne faut pas "dupliquer le bandeau a l'infini". Je vois deux solutions possibles :



1/ soit tu consideres le bandeau en entier. Dans ce cas la il te faut
deux exemplaires du bandeau. Au debut tu n'en places qu'un seul sur la
scene, l'autre en dehors, et en fonction du defilement tu
deplaces les deux bandeaux. Pour simplifier il faut mieux dire
que si tu n'as qu'un seul bandeau affiché c toujours le premier.
Ensuite au defilement tu mets un code avec des conditionnelles qui fait
le tour des cas.



2/ tu consideres des vignettes uniquement, tu les places toutes en
dehors de la scene. Et a chaque deplacement tu recalcules celles qui
sont affichées et tu les positionne en fonction.



Mais au fait as tu fait une recherche sur "diaporama" sur ce site ??
(nombreuses réponses...Surtout que i a peut etre plus simple que mes
solutions)