Modifier l'alpha d'un bouton

D4rkXtaL Messages postés 28 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 8 janvier 2007 - 23 juin 2004 à 09:45
zen_laden Messages postés 53 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 16 octobre 2006 - 5 mars 2009 à 15:57
Bonjour,

je poste en dernier recours car les autres sujets trouvés sur le forums ne m'ont pas aidés.

C'est très simple : sur la scène j'ai un clip nommé btnpt (un rond) qui doit être invisible à la base, apparaître progressivement quand on le touche, disparaître progressivement quand on s'éloigne et appeler le lancement d'un clip situé lui aussi sur la scène (clip grd).
Tout fonctionne sauf la variation progressive de l'alpha. Là je suis complètement coincé.

Je vous livre le code du MC qui me sers de bouton :

onClipEvent (load) {
this._alpha = 10;
}
on (rollOver) {
if (this._alpha<100) {
this._alpha++;
}
}
on (rollOut) {
if (this._alpha>100) {
this._alpha--;
}
}
on (release) {
_root.grd.gotoAndPlay(1);
}



Merci de votre aide par avance :)

7 réponses

cs_adv Messages postés 149 Date d'inscription vendredi 30 mai 2003 Statut Membre Dernière intervention 28 janvier 2011 2
23 juin 2004 à 10:17
Hello,
tu ne peux pas faire exactement comme cela. Lorsque tu utilise on(rollOver) ou on(rollOut) la fonction sera executée une seule fois.
Pour faire cela il te faut utiliser un setInterval. Voici un exemple:
on(rollOver){
clearInterval(refInt);
refInt = setInterval(fadeIn, 100);
}
function fadeIn(){
this._alpha+=5;
if(this._alpha >= 100){
clearInterval(refInt);
}
}
on(rollOut){
clearInterval(refInt);
refInt = setInterval(fadeOut, 100);
}
function fadeOut(){
this._alpha-=5;
if(this._alpha <= 0){
clearInterval(refInt);
}
}
Voilà, comme ça, ça devrait fonctionner.
0
D4rkXtaL Messages postés 28 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 8 janvier 2007
23 juin 2004 à 10:44
Salut,

merci pour le code mais ça ne marche pas car le panneau de sortie m'indique que "function fadeIn()" et "fadeOut()" doivent se trouver dans le gestionnaire d'évènement "onClipEvent()".
Je les ai donc placé là mais rien ne passe. J'ai donc placé fadIn dans on(rollOver) et fadeOut dans on(rollOut) mais rien ne se passe non plus.
Je suis un petit peu perdu.

Merci quand même :)
0
D4rkXtaL Messages postés 28 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 8 janvier 2007
23 juin 2004 à 10:54
voilà le code modifié mais j'ai dû faire une erreur :

onClipEvent (enterFrame) {
this._alpha = 8;
function fadeIn() {
this._alpha += 5;
if (this._alpha>=100) {
clearInterval(refInt);
}
}
function fadeOut() {
this._alpha -= 5;
if (this._alpha<=0) {
clearInterval(refInt);
}
}
}
on (rollOver) {
clearInterval(refInt);
refInt = setInterval(fadeIn, 100);
}
on (rollOut) {
clearInterval(refInt);
refInt = setInterval(fadeOut, 100);
}
on (release) {
_root.grd.gotoAndPlay(1);
}

0
D4rkXtaL Messages postés 28 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 8 janvier 2007
23 juin 2004 à 11:10
CA Y EST J'AI TROUVE !!!!!!!!!!!!!!!! :)))

Voilà le script permettant l'apparition et la disparition progressive du MC :

onClipEvent (load) {
this._alpha = 8;
}
on (rollOver) {
this.onEnterFrame = function() {
this._alpha += 2;
};
}
on (rollOut) {
this.onEnterFrame = function() {
this._alpha -= 2;
};
}
on (release) {
_root.grd.gotoAndPlay(1);
}


@++
0

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

Posez votre question
cs_tom Messages postés 1511 Date d'inscription samedi 8 décembre 2001 Statut Modérateur Dernière intervention 11 juin 2009
23 juin 2004 à 11:47
N'oublie pas de rajouter des if pour bloquer this._alpha à 100 ou à 0. Sinon, tu vas avoir des surprises en restant dessus...

@+ Tom
0
D4rkXtaL Messages postés 28 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 8 janvier 2007
23 juin 2004 à 11:48
Voilà mon script final. Il permet d'afficher un MC à une valeur _alpha de 10 puis de faire évoluer sa transparence entre 10 et 80 en fonction du passage de la souris. Le clique sur ce MC permet de lancer l'animation d'un clip distant nommé "grd".

onClipEvent (load) {
this._alpha = 10;
}
on (rollOver) {
this.onEnterFrame = function() {
if (this._alpha<80) {
this._alpha += 2;
} else {
this._alpha = 80;
}
};
}
on (rollOut) {
this.onEnterFrame = function() {
if (this._alpha>=10) {
this._alpha -= 2;
} else {
this._alpha = 10;
}
};
}
on (release) {
_root.grd.gotoAndPlay(1);
}



Voilà, merci pour l'aide et bonne chance à ceux qui réutiliserons ce script :)

@++
0
zen_laden Messages postés 53 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 16 octobre 2006
5 mars 2009 à 15:57
Merci c'est simple est efficace !
0
Rejoignez-nous