zoukankan      html  css  js  c++  java
  • [ActionScript 3.0] AS3实现滤镜叠加效果

    import flash.display.BitmapData;
    import flash.filters.BlurFilter;
    import flash.geom.ColorTransform;
    import flash.geom.Matrix;
    addChild(new Bitmap(overlapFilter(new 元件1(),5,1)));
    
    function overlapFilter(obj:DisplayObject, dist:Number, qual:Number):BitmapData
    {
        var width0:Number = obj.width+(dist*0.05*obj.width)+4;
        var height0:Number = obj.height+(dist*0.05*obj.height)+4;
        var out:BitmapData = new BitmapData(width0,height0,true,0x00000000);
        var buffer:BitmapData = new BitmapData(width0,height0,true,0x00000000);
        var blur:BlurFilter = new BlurFilter(3,3,qual);
        var cmat:ColorTransform = new ColorTransform(1,1,1,0.2,0,0,0,0);
        var mat:Matrix = new Matrix();
        var step:Number;
        for (var i:Number = dist+20; i>1; i--) {
            step = 0.05 * i;
            mat.identity();
            mat.scale(step,step);
            mat.translate(width0/2-obj.width*step/2,height0/2-obj.height*step/2);
            buffer.fillRect(buffer.rect,0x00000000);
            buffer.draw(obj,mat);
            buffer.applyFilter(buffer,buffer.rect,new Point,blur);
            mat.identity();
            out.draw(buffer,mat,cmat);
        }
        mat.identity();
        mat.translate(dist*0.05*obj.width/2+2,dist*0.05*obj.height/2+2);
        cmat.alphaMultiplier = 0.3;
        buffer.dispose();
        out.draw(obj,mat,cmat,null,null,true);
        return out;
    }
  • 相关阅读:
    Linux GNOME桌面使用技巧大全
    联想旭日 C465A 开机白屏
    基础知识:编程的工作机制
    JavaCC 学习笔记
    笨办法学R编程(1)
    一些学习方法总结
    使用变量表示字、数字和值
    栈溢出2017doubly_dangerous
    栈溢出warmup_csaw_2016
    基础学习ret2text
  • 原文地址:https://www.cnblogs.com/frost-yen/p/4950620.html
Copyright © 2011-2022 走看看