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;
    }
  • 相关阅读:
    A physically based scene with three.js
    pbr-guide
    Art Pipeline for glTF
    GG5D
    Leetcode 146.LRU缓存机制
    Leetcode 143.重排链表
    Leetcode 142.环形链表II
    Leetcode 141.环形链表
    Leetcode 139.单词拆分
    Leetcode 138.复制带随机指针的链表
  • 原文地址:https://www.cnblogs.com/frost-yen/p/4950620.html
Copyright © 2011-2022 走看看