惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

大猫的无限游戏
大猫的无限游戏
MyScale Blog
MyScale Blog
雷峰网
雷峰网
量子位
小众软件
小众软件
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 叶小钗
T
Tailwind CSS Blog
月光博客
月光博客
博客园 - 【当耐特】
博客园_首页
罗磊的独立博客
博客园 - 三生石上(FineUI控件)
IT之家
IT之家
爱范儿
爱范儿
阮一峰的网络日志
阮一峰的网络日志
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
WordPress大学
WordPress大学
The Cloudflare Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
S
SegmentFault 最新的问题
人人都是产品经理
人人都是产品经理
V
V2EX
酷 壳 – CoolShell
酷 壳 – CoolShell

博客园 - 迷梦江南

DB2问题记录本 AS3无缝循环播放FLV flex开发零碎笔记,随时补充 JQuey练习一 转“大型网站架构演变和知识体系” 转“大型高并发高负载网站的系统架构 ” 转“经验分享:大型高并发高负载网站的系统架构 ” 转“关于平台研发的一些想法” 转“国内图片网站Yupoo的架构” mootools 1-4 ajax C#测试代码段运行速度 - 迷梦江南 - 博客园 javascript放大图片 - 迷梦江南 - 博客园 javascript网站导航栏 - 迷梦江南 - 博客园 QQ在线状态接口 - 迷梦江南 - 博客园 (转)Javascript在IE与Firefox下的差异 WebApplication与Profile购物车 网站发布后出现的两个问题 mootools实现搜索提示文本框修正版 ASP.NET查看本地磁盘下的子目录和文件信息
AS3淡入淡出类
迷梦江南 · 2013-01-14 · via 博客园 - 迷梦江南

最近开始做FLEX开发,自己做了个淡入淡出效果类,留点痕迹。

调用方式:

   // 淡入
   var da:DisplayAlpha = new DisplayAlpha(pics,20,0.03);
   da.show();

package common
{
    import flash.display.DisplayObject;
    import flash.utils.setTimeout;
    
    // 淡入淡出
    public class DisplayAlpha
    {
        // 需要淡入淡出的对象
        private  var _obj:DisplayObject;
        // 设置时间间隔
        private  var _delay:Number;
        // 记录淡入淡出的方向
        private var _fx:int = 1;
        // 淡入淡出对象的最终alpha值
        private var _value:Number;
        // appha递增(递减)的幅度
        private var _alphaSpan:Number;
        
        public function DisplayAlpha(obj:DisplayObject,delay:Number,alphaSpan:Number=0.01)
        {
            _obj = obj;
            _delay = delay;
            if(_obj.alpha > 0)
            {
                _fx = -1;
            }
            _alphaSpan = alphaSpan;
        }
        
        // 淡出
        public  function hide():void
        {
            _obj.alpha -= _alphaSpan;
            if(_obj.alpha > 0)
            {
                setTimeout(hide,_delay);
            }
            else
            {
                _value = 0;
                setTimeout(setAlpha,500);
            }
        }
        
        // 淡入
        public  function show():void
        {
            _obj.alpha += _alphaSpan;
            if(_obj.alpha < 1)
            {
                setTimeout(show,_delay);
            }
            else
            {
                _value = 1;
                setTimeout(setAlpha,500);
            }
        }
        
        // 淡入淡出交替
        public function autoShowAndHide():void
        {
            _obj.alpha += _fx*_alphaSpan;
            if(_obj.alpha >= 1 || _obj.alpha <= 0)
            {
                _fx = -_fx;
            }
            setTimeout(autoShowAndHide,_delay);
        }
        
        // 给淡入淡出对象赋值
        private function setAlpha():void
        {
            _obj.alpha = _value;
        }
    }
}