Problème de Boutons dupilqués avec Swapdepth.

filou250 Messages postés 17 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 27 novembre 2012 - 14 janv. 2010 à 16:07
crackter Messages postés 401 Date d'inscription mercredi 12 novembre 2003 Statut Membre Dernière intervention 31 janvier 2010 - 17 janv. 2010 à 00:20
Salut à tous,

Voila, j'ai une petite question toute bête !!

Etant graphiste je suis en train de réaliser mon portefolio tout Flash.
Pour ce faire j'ai placé plusieurs "clips boutons" avec un effet grossissant en utilisant les Swapdepths pour les niveau.
Le problème est que sur la time line, à chaque fois que je clique par exemple sur "btn1" puis "btn3" (par exemple) puis a nouveau "btn1" une nouvelle occurrence de "btn1" s'affiche.
la solution serait je pense rechargement à chaque clique, mais je ne sais pas comment faire.

Merci par avance.

14 réponses

Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
14 janv. 2010 à 17:25
Hello,

sans ton code, on peux pas t'aider :)

a+


-- Orange73 --

"L'homme n'est pas fait pour travailler, la preuve c'est que cela le fatigue" (Voltaire)
0
filou250 Messages postés 17 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 27 novembre 2012
14 janv. 2010 à 17:48
Ca marche ...

Alors, "web" et " logo" sont les clips boutons placés sur la scène.
Plus loin sur la time line j'ai un "stop" pour l'anim "diapo_web" à l'image 93 un second à l'img 93 pour l'anim "diapo_logo".
Ect pour les autres boutons jusqu'au btn "contact"

Merci encore ;)

web.onRollOver = function() {
this.swapDepths(1);
web.gotoAndPlay(1);
}
web.onRollOut = function() {
web.gotoAndPlay(6);
this.swapDepths(this._parent.contact);
diapo_web.swapDepths(1);
}
web.onRelease = function() {
gotoAndStop(93);
}
logo.onRollOver=function(){
this.swapDepths(1);
logo.gotoAndPlay(1);
}
logo.onRollOut = function() {
logo.gotoAndPlay(6);
this.swapDepths(this._parent.contact);
diapo_web.swapDepths(1);
}
logo.onRelease = function() {
gotoAndStop(93);
}
0
crackter Messages postés 401 Date d'inscription mercredi 12 novembre 2003 Statut Membre Dernière intervention 31 janvier 2010
15 janv. 2010 à 07:45
Salut,

en fait c'est normal, il faut juste savoir (et les premiers temps c'est impossible ^^) qu'un depth positif est dynamique, alors qu'un depth d'un objet directement sur la scène est négatif.
Donc quand tu change le depth d'un objet en positif et que tu déplaces la timeline, l'objet qui est devenu dynamique ne peut plus s'enlever que par la méthode removeMovieClip. Il faut que tu remettes un depth négatif aux objets ou alors que tu effaces les clips par code.
0
filou250 Messages postés 17 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 27 novembre 2012
15 janv. 2010 à 11:12
Yes, merci beaucoup ! Je teste de suite la solution avec un depth négatif car si j'emploie un removemovieclip mes boutons ne se rechargeront pas.
A ce propos, existe-t-il une sorte de "reloadMovieClip" ce qui arrangerait bien le problème. Enfin je pense !

Merci encore.
0

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

Posez votre question
crackter Messages postés 401 Date d'inscription mercredi 12 novembre 2003 Statut Membre Dernière intervention 31 janvier 2010
15 janv. 2010 à 12:12
Salut,

pas de "reloadMovieClip", par contre pour ce genre d'animation, lorsque tout est fait en code tu n'a pas ce genre de soucis. Vue que tu ne changes pas de frame et que tu rends visible/invisible les clips dont tu as besoin, et que tu as un clip qui contient tes animations, seul ce clip bouge sa tête de lecture, tu ne touches donc plus à la tête de lecture de la scène principale.
0
filou250 Messages postés 17 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 27 novembre 2012
15 janv. 2010 à 13:13
Bien, j'ai modifié le code mais ca ne fonctionne toujours pas :(

Je vais essayer d'être claire sur les modifs...

Alors, j'ai dans un clip ...

- 6 clips modifiés en boutons avec un nom d'occurrence pour chaque. Juste dessous dans une image clé vide le code AS. le tout positionné à l'image 10 de la timeline.

- Puis, à l'image clé 93; Les uns au dessus des autres les 6 clips relatifs aux boutons.

Si je clique sur un des btns, le lecteur ne supprime pas les autres clips non-concernés et les clip btns font n'importent quoi ils disparaissent et reviennent à leur guise !?!?

Je donne le code au cas ou ...

Si ça ne suffit pas je peux filer la source .... MERCI

web.onRollOver = function() {
this.swapDepths(-1);
web.gotoAndPlay(1);
diapo_logo.removeMovieClip();
diapo_pack.removeMovieClip();
diapo_plv.removeMovieClip();
diapo_divers.removeMovieClip();
diapo_contact.removeMovieClip();
}
web.onRollOut = function() {
web.gotoAndPlay(6);
this.swapDepths(this._parent.contact);
diapo_web.swapDepths(-1);
}
web.onRelease = function() {
gotoAndPlay(93);
diapo_logo.removeMovieClip();
diapo_pack.removeMovieClip();
diapo_plv.removeMovieClip();
diapo_divers.removeMovieClip();
diapo_contact.removeMovieClip();
}
logo.onRollOver=function(){
this.swapDepths(-1);
logo.gotoAndPlay(1);
diapo_web.removeMovieClip();
diapo_pack.removeMovieClip();
diapo_plv.removeMovieClip();
diapo_divers.removeMovieClip();
diapo_contact.removeMovieClip();
}
logo.onRollOut = function() {
logo.gotoAndPlay(6);
this.swapDepths(this._parent.contact);
diapo_web.swapDepths(-1);
}
logo.onRelease = function() {
gotoAndPlay(93);
diapo_web.removeMovieClip();
diapo_pack.removeMovieClip();
diapo_plv.removeMovieClip();
diapo_divers.removeMovieClip();
diapo_contact.removeMovieClip();
}

pack.onRollOver = function() {
this.swapDepths(-1);
pack.gotoAndPlay(1);
diapo_web.removeMovieClip();
diapo_logo.removeMovieClip();
diapo_plv.removeMovieClip();
diapo_divers.removeMovieClip();
diapo_contact.removeMovieClip();
}
pack.onRollOut = function() {
pack.gotoAndPlay(6);
this.swapDepths(this._parent.contact);
diapo_web.swapDepths(-1);
}
pack.onRelease = function() {
gotoAndPlay(93);
diapo_web.removeMovieClip();
diapo_logo.removeMovieClip();
diapo_plv.removeMovieClip();
diapo_divers.removeMovieClip();
diapo_contact.removeMovieClip();
}

plv.onRollOver = function() {
this.swapDepths(-1);
plv.gotoAndPlay(1);
diapo_web.removeMovieClip();
diapo_logo.removeMovieClip();
diapo_pack.removeMovieClip();
diapo_divers.removeMovieClip();
diapo_contact.removeMovieClip();
}
plv.onRollOut = function() {
plv.gotoAndPlay(6);
this.swapDepths(this._parent.contact);
diapo_web.swapDepths(-1);
}
plv.onRelease = function() {
gotoAndPlay(93);
diapo_web.removeMovieClip();
diapo_logo.removeMovieClip();
diapo_pack.removeMovieClip();
diapo_divers.removeMovieClip();
diapo_contact.removeMovieClip();
}

divers.onRollOver = function() {
this.swapDepths(-1);
divers.gotoAndPlay(1);
diapo_web.removeMovieClip();
diapo_logo.removeMovieClip();
diapo_pack.removeMovieClip();
diapo_plv.removeMovieClip();
diapo_contact.removeMovieClip();
}
divers.onRollOut = function() {
divers.gotoAndPlay(6);
divers.swapDepths(this._parent.contact);
diapo_web.swapDepths(-1);
}
divers.onRelease = function() {
gotoAndPlay(93);
diapo_web.removeMovieClip();
diapo_logo.removeMovieClip();
diapo_pack.removeMovieClip();
diapo_plv.removeMovieClip();
diapo_contact.removeMovieClip();
}

contact.onRollOver = function() {
this.swapDepths(-1);
contact.gotoAndPlay(1);
diapo_web.removeMovieClip();
diapo_logo.removeMovieClip();
diapo_pack.removeMovieClip();
diapo_plv.removeMovieClip();
diapo_divers.removeMovieClip();

}
contact.onRollOut = function() {
contact.gotoAndPlay(6);
this.swapDepths(this._parent.contact);
diapo_web.swapDepths(-1);
}
contact.onRelease = function() {
gotoAndPlay(93);
this.swapDepths(-1);
contact.gotoAndPlay(1);
diapo_web.removeMovieClip();
diapo_logo.removeMovieClip();
diapo_pack.removeMovieClip();
diapo_plv.removeMovieClip();
diapo_divers.removeMovieClip();
}
0
crackter Messages postés 401 Date d'inscription mercredi 12 novembre 2003 Statut Membre Dernière intervention 31 janvier 2010
15 janv. 2010 à 14:01
quand tu fais un this.swapDepths(-1);

en fait l'objet en cours va échanger sa profondeur avec l'objet situé à -1.

Donc il est tout à fait normal que ça puisse faire un peu n'importe quoi.

Comme dans mon message précédent, je te conseil de ne pas mettre en dur ton animation sur la séquence principale et de la mettre plutôt dans un clip. Ainsi tu pourra changer les états de tes boutons sans changer d'image dans ta séquence.
0
filou250 Messages postés 17 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 27 novembre 2012
15 janv. 2010 à 14:07
Ok! j'avais pas compris. Je vais essayer ça.

Dis voir ! Je dois signifier dans le code que les animations sont en clip parent ?
0
crackter Messages postés 401 Date d'inscription mercredi 12 novembre 2003 Statut Membre Dernière intervention 31 janvier 2010
15 janv. 2010 à 16:13
je n'ai pas saisi ta dernière demande.
0
filou250 Messages postés 17 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 27 novembre 2012
15 janv. 2010 à 16:58
J'ai simplifié au max, à savoir j'ai mis l'ensemble, btns et clips, dans un clip.
J'ai mis un "stop" à l'image 1 dans chaque clip.
Et j'ai supprimé, pour plus de clarté 4 des 6 btns.
Résultat, les btns fonctionnent plutôt bien, or mis les clip qui se superposent même avec removeMovieClip (voir code)...

Je commence à découragé

web.onRollOver = function() {
this.swapDepths(-1);
web.gotoAndPlay(1);
diapo_logo.removeMovieClip();
}
web.onRollOut = function() {
web.gotoAndPlay(6);
this.swapDepths(-1);
diapo_web.swapDepths(-1);
diapo_logo.removeMovieClip();
}
web.onRelease = function() {
diapo_web.gotoAndPlay(2);
diapo_logo.removeMovieClip();

}
logo.onRollOver=function(){
this.swapDepths(-1);
logo.gotoAndPlay(1);
diapo_web.removeMovieClip();
}
logo.onRollOut = function() {
logo.gotoAndPlay(6);
this.swapDepths(-1);
diapo_logo.swapDepths(-1);
diapo_web.removeMovieClip();
}
logo.onRelease = function() {
diapo_logo.gotoAndPlay(2);
diapo_web.removeMovieClip();

}
0
crackter Messages postés 401 Date d'inscription mercredi 12 novembre 2003 Statut Membre Dernière intervention 31 janvier 2010
15 janv. 2010 à 21:12
serait-il possible d'accéder à la source afin de t'aider car je ne comprend pas ce que tu essayes de faire avec les swapDepths. Si cela se trouve ils ne sont pas obligatoires et on pourrait simplifier grandement ton code (même si c'est déjà très basique).
0
filou250 Messages postés 17 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 27 novembre 2012
15 janv. 2010 à 21:54
Alors là je craque !!!!!! Ca fait 2 jours que je me tape avec ce code de m....e. !!!#### En effet ça doit etre super simple pour un vrai développeur AS ... Si vraiment tu souhaite m'aider, peux-tu m'envoyer ton mail à filoux250@sfr.fr (c'est une adresse temporaire afin de ne pas êtres spamé). je te donnerais "la vraie" après avoir reçu ton mail. Merci vraiment, c'est cool que tu veuilles bien vouloir m'aider ... A très vite
0
filou250 Messages postés 17 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 27 novembre 2012
16 janv. 2010 à 16:16
J'ai enfin trouvé la solution à mon problème.

J'ai simplement créé un objet référent en depth dans mon clip et joué avec les autres éléments.
Ce qui à évité les bugs entre les objets ayant un depth identique.

Merci quand-même à toi Crackter.
0
crackter Messages postés 401 Date d'inscription mercredi 12 novembre 2003 Statut Membre Dernière intervention 31 janvier 2010
17 janv. 2010 à 00:20
ok bon courage pour la suite.
0
Rejoignez-nous