2010-08-10 8 views
1

Je suis en train de faire un effet fondu enchaîné, et jeeffet CrossFade en Flash avec AS 3.0

TransitionManager.start (imageHolder, {type: Fade, direction: Transition.IN, durée: 0,75});

Ce qui rend l'image fade in, mais je veux aussi l'image de fade out dont il ne fait pas, quand je change de direction: Transition.IN à la direction: Transition.OUT

Quelqu'un sait ce que je m manquant? Merci!

Répondre

2

Utilisez Greensocks TweenLite. Votre vie sera meilleure pour cela. La même ligne TweenLite serait:

TweenLite.to(imageHolder, 0.75, {alpha:1}); 

Alors vous fadeOut feriez:

TweenLite.to(imageHolder, 0.75, {alpha:0}); 

Vous pouvez aussi le faire fondu simple à l'aide d'un indicateur booléen et enterFrame comme ceci:

var fadeIn:Boolean = true; 

addEventListener(Event.ENTER_FRAME, enterFrameHandler); 
function enterFrameHandler(e:Event):void 
{ 
    var easeSpeed:Number = 0.4; 
    var targetAlpha:Number = (fadeIn) ? 1 : 0; 
    imageHolder.alpha += (1 - imageHolder.alpha) * easeSpeed; 
} 

réglez juste fadeIn à vrai ou faux n'importe où ailleurs dans votre code, et l'enterframe prendra soin de l'évanouissement. targetAlpha est défini en utilisant un ternary operator, qui vérifie si fadeIn est vrai ou faux. Si vrai, alors targetAlpha est mis à 1, sinon il est mis à 0. La dernière ligne de la fonction enterFrameHandler est un simple algorithme de facilité, qui facilite vers la cible d'un pourcentage pour chaque image. Ajustez le easeSpeed ​​jusqu'à ce qu'il semble correct.

Questions connexes