【问题标题】: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,直到它看起来正确。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-19
      • 2023-03-11
      • 2010-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多