网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > 网管学堂 > 网页设计 > Flash > Action > Action script实现火焰特效  

Action script实现火焰特效

2007-08-29  作者:bitsCN整理  来源:bitsCN.com  点评 投稿 收藏

        首先申明不是偶原创,偶只是把效果综合了一下。粒子变幻效果忘记是谁的了,知道出处的朋友请提醒,偶在以后补上。火焰瑞流效果是来自一位朋友的博客里面的摄像头火焰特效,也无处可考证出处,请知道的朋友提醒,偶以后补上。还有个返回无重复随机数组的函数在里面,是坛子里的朋友的,知道出处的朋友也请告知,呵呵呵...

        以下是关键原码和原始文件,感兴趣的朋友可以看看:Fire_ok.as:
/*
没啥好说的,拿去用吧:)
*/
class Fire_ok extends MovieClip
{
    var fireBmp, prevBmp, tempBmp, greyBmp, mtx, pnt, blurF, greyscaleCMF, fireCMF, dispMapF,
 webcam, fireBmpHolder, createEmptyMovieClip;
    var activityLevel_pb, wcGet ;
    function Fire_ok ()
    {
        super (); 中国网管联盟bitsCN.com
        fireBmp = new flash.display.BitmapData (400, 400, false, 0);
        prevBmp = fireBmp.clone ();
        tempBmp = fireBmp.clone ();
        greyBmp = new flash.display.BitmapData (400, 400, false, 16743424);
        mtx = new flash.geom.Matrix ();
        pnt = new flash.geom.Point ();
        blurF = new flash.filters.BlurFilter (7, 7, 1);
        greyscaleCMF = new flash.filters.ColorMatrixFilter ([0.73, 0.83, 0.93, 0, 0, 0, 0, 0, 0, 0,  网管论坛bbs_bitsCN_com
0, 0, 0, 0, 0, 0, 0, 0, 1, 0]);
        fireCMF = new flash.filters.ColorMatrixFilter ([0.8, 0.05, 0, 0, 0, 0, 0.65, 0, 0, 0, 0, 0, 0.5, 
0, 0, 0, 0, 1, 0]);
        dispMapF = new flash.filters.DisplacementMapFilter (tempBmp, pnt, 1, 2, 10, - 35, "clamp");
        /////////////////////////////////////////////////////
    }
    function configUI ()
    {
        fireBmpHolder = this.createEmptyMovieClip ("fireBmpHolder", 1);
        fireBmpHolder.attachBitmap (fireBmp, 1, "always", false);

网管u家u.bitscn@com


        fireBmpHolder.blendMode = "add";
    }
    function onEnterFrame ()
    {
        tempBmp.copyPixels (prevBmp, prevBmp.rectangle, pnt);
        prevBmp.draw (webcam);
        if (tempBmp.getPixel (1, 1) < 2)
        {
            return (undefined);
        }
        tempBmp.draw (prevBmp, mtx, null, "difference");
        
        tempBmp.applyFilter (tempBmp, tempBmp.rectangle, pnt, greyscaleCMF);
网管u家u.bitscn@com

        tempBmp.threshold (tempBmp, tempBmp.rectangle, pnt, ">", 1638400, 4289379174, 
16711680, false);
        tempBmp.applyFilter (tempBmp, tempBmp.rectangle, pnt, blurF);
        fireBmp.draw (tempBmp, mtx, null, "add");
        
        tempBmp.perlinNoise (13, 10, 1, random (100) , false, true, 3, false);
        tempBmp.draw (greyBmp, mtx, null, "darken");
        
        fireBmp.applyFilter (fireBmp, fireBmp.rectangle, pnt, dispMapF);
        fireBmp.applyFilter (fireBmp, fireBmp.rectangle, pnt, fireCMF);
中国网管联盟bitsCN.com

    }
    static var CLASS_REF = Fire_ok;
    static var LINKAGE_ID = "Fire_ok";
}
附件: fireblue.rar(请用winrar2.7或以上版本)

TAGs   特效   实现   pnt   tempBmp   false   朋友   mtx   fireBmp   prevBmp      
 上一篇:没有了   下一篇:简单实现AS绘制贝塞尔曲线
Action script实现火焰特效 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: