Flash 中的 CrossFade 效果与 AS 3.0

发布于 2024-09-13 13:30:11 字数 224 浏览 5 评论 0原文

我正在尝试做交叉淡入淡出效果,并且我有

TransitionManager.start(imageHolder, {type:Fade, Direction:Transition.IN,uration:0.75});

这使得图像淡入,但我也希望图像淡出,但当我将方向:Transition.IN 更改为方向:Transition.OUT 时,它不会淡出

有人知道我错过了什么吗? 谢谢!

I'm trying to do a crossfade effect, and I have

TransitionManager.start(imageHolder, {type:Fade, direction:Transition.IN, duration:0.75});

Which makes the image fade in, but I also want the image to fade out which it doesn't do, when I change direction:Transition.IN to direction:Transition.OUT

Anyone know what I'm missing?
Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

So要识趣 2024-09-20 13:30:11

使用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 使用三元运算符设置,检查 fadeIn 是 true 还是 false。如果为 true,则 targetAlpha 设置为 1,否则设置为 0。enterFrameHandler 函数中的最后一行是一个简单的缓动算法,每帧缓动一定百分比以达到目标。调整 easeSpeed 直到看起来合适。

Use Greensocks TweenLite. Your life will be better for it. The same line with TweenLite would be:

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

Then to fadeout you would do:

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

You could also do this simple fade using a Boolean flag and on enterFrame like this:

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;
}

just set fadeIn to true or false anywhere else in your code, and the enterframe will take care of the fading. targetAlpha is set using a ternary operator, that check if fadeIn is true or false. If true, then targetAlpha is set to 1, else it's set to 0. The last line in the enterFrameHandler function is a simple ease algorithm, that eases towards the target by a percentage each frame. Adjust the easeSpeed till it looks right.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文