【问题标题】:CrossFade effect in Flash with AS 3.0带有 AS 3.0 的 Flash 中的 CrossFade 效果
【发布时间】:2011-03-28 00:48:51
【问题描述】:
我正在尝试做一个淡入淡出效果,我有
TransitionManager.start(imageHolder, {type:Fade, direction:Transition.IN, duration:0.75});
这使图像淡入,但我也希望图像淡出,当我将方向:Transition.IN 更改为方向:Transition.OUT 时,它不会淡出
有人知道我错过了什么吗?
谢谢!
【问题讨论】:
标签:
flash
actionscript-3
slideshow
【解决方案1】:
使用Greensocks TweenLite。你的生活会因此变得更好。与 TweenLite 相同的行是:
TweenLite.to(imageHolder, 0.75, {alpha:1});
然后你会做淡出:
TweenLite.to(imageHolder, 0.75, {alpha:0});
您也可以使用布尔标志和 enterFrame 执行此简单的淡入淡出,如下所示:
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;
}
只需在代码中的任何其他位置将fadeIn 设置为true 或false,enterframe 就会处理淡入淡出。 targetAlpha 使用ternary operator 设置,检查fadeIn 是真还是假。如果为真,则 targetAlpha 设置为 1,否则设置为 0。 enterFrameHandler 函数的最后一行是一个简单的缓动算法,它每帧缓和一个百分比的目标。调整easeSpeed,直到它看起来正确。