DUPLICATE d'un bandeau avec photos miniatures

Résolu
tynmar Messages postés 77 Date d'inscription vendredi 8 octobre 2004 Statut Membre Dernière intervention 28 février 2006 - 15 mars 2005 à 15:56
tynmar Messages postés 77 Date d'inscription vendredi 8 octobre 2004 Statut Membre Dernière intervention 28 février 2006 - 17 mars 2005 à 09:06
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

tynmar Messages postés 77 Date d'inscription vendredi 8 octobre 2004 Statut Membre Dernière intervention 28 février 2006
17 mars 2005 à 09:06
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
3
John_Doe_88 Messages postés 606 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 13 décembre 2006
15 mars 2005 à 16:24
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..?
0
tynmar Messages postés 77 Date d'inscription vendredi 8 octobre 2004 Statut Membre Dernière intervention 28 février 2006
15 mars 2005 à 16:33
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 !!!
0
tynmar Messages postés 77 Date d'inscription vendredi 8 octobre 2004 Statut Membre Dernière intervention 28 février 2006
15 mars 2005 à 17:06
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
0

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

Posez votre question
John_Doe_88 Messages postés 606 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 13 décembre 2006
15 mars 2005 à 17:27
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.
0
tynmar Messages postés 77 Date d'inscription vendredi 8 octobre 2004 Statut Membre Dernière intervention 28 février 2006
16 mars 2005 à 10:16
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 ?
0
John_Doe_88 Messages postés 606 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 13 décembre 2006
16 mars 2005 à 14:19
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
0
tynmar Messages postés 77 Date d'inscription vendredi 8 octobre 2004 Statut Membre Dernière intervention 28 février 2006
16 mars 2005 à 14:28
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
0
John_Doe_88 Messages postés 606 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 13 décembre 2006
16 mars 2005 à 20:49
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)
0
Rejoignez-nous