`

Flex 淡入淡出效果

    博客分类:
  • FLEX
阅读更多
项目中遇到淡入淡出效果,自己写了个方便用的。
package com.ruixinflex.mapoperation.classes {
import mx.effects.Fade;
import mx.events.EffectEvent;

public class FadeEffect {
    private var _fadeOut:Fade;

    private var _fadeIn:Fade;

    private var _target:Object;

    private var _isPlaying:Boolean;

    public function get isPlaying():Boolean {
        return (this._fadeIn.isPlaying || this._fadeOut.isPlaying);
    }

    public function FadeEffect(target:Object) {
        this._target = target;
        this._fadeIn = createFadeIn(target);
        this._fadeOut = createFadeOut(target);
        this._fadeIn.addEventListener(EffectEvent.EFFECT_START, function (e:EffectEvent):void {
            e.target.target.visible = true;
        });
        this._fadeOut.addEventListener(EffectEvent.EFFECT_END, function (e:EffectEvent):void {
            e.target.target.visible = false;
        });
    }

    public function fadeOut(duration:Number = 1000):void {
        this._fadeOut.duration = duration;
        this.endPlay();
        this._fadeOut.play();
    }

    public function fadeIn(duration:Number = 1000):void {
        this._fadeIn.duration = duration;
        this.endPlay();
        this._fadeIn.play();
    }

    public function endPlay():void {
        if (this._fadeIn.isPlaying) this._fadeIn.end();
        if (this._fadeOut.isPlaying) this._fadeOut.end();
    }

    protected function createFadeIn(target:Object):Fade {
        var result:Fade = new Fade();
        result.alphaFrom = 0;
        result.alphaTo = 1;
        result.target = target;
        return result;
    }

    protected function createFadeOut(target:Object):Fade {
        var result:Fade = new Fade();
        result.alphaFrom = 1;
        result.alphaTo = 0;
        result.target = target;
        return result;
    }
}
}

//使用代码
private var _fadeEffect:FadeEffect = new FadeEffect(_frmLookup);
 _fadeEffect.fadeIn();
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics