Pb avec une fonction boucle pour variation d'opacité [Résolu]

Messages postés
12
Date d'inscription
vendredi 22 janvier 2010
Statut
Membre
Dernière intervention
21 juin 2010
- - Dernière réponse : pluska
Messages postés
12
Date d'inscription
vendredi 22 janvier 2010
Statut
Membre
Dernière intervention
21 juin 2010
- 21 juin 2010 à 19:43
Bonjour à tous,

Voilà je suis en train de créer mon site et j'ai un problème avec un de mes codes :

sur ma page d'accueil j'ai 3 boutons. Au passage de la souris sur un bouton un clip se joue : une couleur se diffuse dans une forme bien précise.

je voudrais que lorsque je retire la souris avant la fin de l'animation la couleur continue de se diffuser mais son alpha diminue progressivement jusqu'à être nul.

le problème que je rencontre est que lorsque je retire ma souris l'alpha diminue à 0 mais cette boucle se répète une deuxième fois... voici mon code (j'ai vraiment besoin d'aide :

on (rollOver) {
gotoAndPlay(90);
onEnterFrame = function(){
vert._alpha=100;
}
}

on (rollOut){
onEnterFrame = function(){
if(vert._alpha>=1) {
vert._alpha=vert._alpha-2,5;
}
else{
vert._alpha=0;
gotoAndPlay(1);
}
}
}
on (press) {
_root.gotoAndPlay("cv");
}
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
1313
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
6
3
Merci
Hello,

c'est normal que ça ne fonctionne pas comme tu le souhaites :
tu spécifies qu'au RollOver() sur le bouton l'alpha passe à 100, puis sur le RollOut() tu dis que SI l'alpha est supérieur ou égal à 1 (hors il est évidemment supérieur à 1 vu que tu le mets à 100 au RollOver) alors l'alpha diminue, et que sinon l'alpha est égal à 0. De plus tu n'effaces pas tes OnEnterFrame, alors qu'il serait préférable de la faire.
Tu mets également un onEnterFrame sur le RollOver(), mais ce onEnterFrame ne sert à rien dans la mesure où tu définis l'alpha à 100 radicalement, pour que le onEnterFrame ait un sens il faudrait que tu augmentes l'alpha progressivement (de la même manière que tu le réduis au RollOut()).
Essaie avec ceci :
TonBouton.onRollOver = function(){
gotoAndPlay(90);
this.onEnterFrame = function(){
vert._alpha += 2.5;
if(vert._alpha >= 100){
delete this.onEnterFrame;
vert._alpha = 100;
}
}
}

TonBouton.onRollOut = function(){
this.onEnterFrame = function(){
vert._alpha -= 2.5;
if(vert._alpha <= 0){
delete this.onEnterFrame;
vert._alpha = 0;
}
}
}


A plus ,

BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 188 internautes nous ont dit merci ce mois-ci

Commenter la réponse de BBFUNK01
Messages postés
12
Date d'inscription
vendredi 22 janvier 2010
Statut
Membre
Dernière intervention
21 juin 2010
0
Merci
Salut,

Merci pour avoir répondu si vite.
En fait même avec ton code l'animation se rejouait mais ça y est j'ai compris pourquoi :
à la fin de mon interpolation j'avais mis un stop sur l'image clé et il suffisait que je mette un stop une frame avant sur un nouveau calque...
(c'est surement pas très convetionnel mais cça fontionne^^)

Merci encore!
Pluska.
Commenter la réponse de pluska