Problème de Boutons dupilqués avec Swapdepth.

Signaler
Messages postés
17
Date d'inscription
mercredi 27 avril 2005
Statut
Membre
Dernière intervention
27 novembre 2012
-
Messages postés
401
Date d'inscription
mercredi 12 novembre 2003
Statut
Membre
Dernière intervention
31 janvier 2010
-
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

Messages postés
1375
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
2 août 2011

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)
Messages postés
17
Date d'inscription
mercredi 27 avril 2005
Statut
Membre
Dernière intervention
27 novembre 2012

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);
}
Messages postés
401
Date d'inscription
mercredi 12 novembre 2003
Statut
Membre
Dernière intervention
31 janvier 2010

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.
Messages postés
17
Date d'inscription
mercredi 27 avril 2005
Statut
Membre
Dernière intervention
27 novembre 2012

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.
Messages postés
401
Date d'inscription
mercredi 12 novembre 2003
Statut
Membre
Dernière intervention
31 janvier 2010

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.
Messages postés
17
Date d'inscription
mercredi 27 avril 2005
Statut
Membre
Dernière intervention
27 novembre 2012

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();
}
Messages postés
401
Date d'inscription
mercredi 12 novembre 2003
Statut
Membre
Dernière intervention
31 janvier 2010

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.
Messages postés
17
Date d'inscription
mercredi 27 avril 2005
Statut
Membre
Dernière intervention
27 novembre 2012

Ok! j'avais pas compris. Je vais essayer ça.

Dis voir ! Je dois signifier dans le code que les animations sont en clip parent ?
Messages postés
401
Date d'inscription
mercredi 12 novembre 2003
Statut
Membre
Dernière intervention
31 janvier 2010

je n'ai pas saisi ta dernière demande.
Messages postés
17
Date d'inscription
mercredi 27 avril 2005
Statut
Membre
Dernière intervention
27 novembre 2012

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();

}
Messages postés
401
Date d'inscription
mercredi 12 novembre 2003
Statut
Membre
Dernière intervention
31 janvier 2010

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).
Messages postés
17
Date d'inscription
mercredi 27 avril 2005
Statut
Membre
Dernière intervention
27 novembre 2012

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
Messages postés
17
Date d'inscription
mercredi 27 avril 2005
Statut
Membre
Dernière intervention
27 novembre 2012

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.
Messages postés
401
Date d'inscription
mercredi 12 novembre 2003
Statut
Membre
Dernière intervention
31 janvier 2010

ok bon courage pour la suite.