zoukankan      html  css  js  c++  java
  • flash中的渐变滤镜GradientGlowFilter

    可使用 GradientGlowFilter 类对显示对象应用渐变发光效果。 渐变发光是一种非常逼真的发光效果,您可以控制颜色渐变。 可以在对象的内缘或外缘的周围或者对象的顶部应用渐变发光。 您可以将滤镜应用于任何显示对象(即,从 DisplayObject 类继承的对象),例如 MovieClip、SimpleButton、TextField 和 Video 对象,以及 BitmapData 对象。

    滤镜的具体使用取决于要应用滤镜的对象:

    • 要对显示对象应用滤镜,请使用 filters 属性。 设置对象的 filters 属性不会修改相应的对象,而清除 filters 属性可以删除相应的滤镜。
    • 若要对 BitmapData 对象应用滤镜,请使用 BitmapData.applyFilter() 方法。 对 BitmapData 对象调用 applyFilter() 会取得源 BitmapData 对象和滤镜对象,并最终生成一个过滤图像。

    如果对显示对象应用滤镜,显示对象的 cacheAsBitmap 属性将设置为 true。 如果清除所有滤镜,将恢复 cacheAsBitmap 的原始值。

    此滤镜支持舞台缩放。 但是,它不支持常规缩放、旋转和倾斜;如果对象本身进行了缩放(如果将 scaleXscaleY 设置为除 1.0 以外的其它值),滤镜效果将不进行缩放。 只有用户在舞台上进行放大时它才会缩放。

    GradientGlowFilter的构造函数:

    public function GradientGlowFilter(distance:Number = 4.0, angle:Number = 45, colors:Array = null, alphas:Array = null, ratios:Array = null, blurX:Number = 4.0, blurY:Number = 4.0, strength:Number = 1, quality:int = 1, type:String = "inner", knockout:Boolean = false)

    distance:Number (default = 4.0) — 光晕的偏移距离。

    angle:Number (default = 45) — 角度,以度为单位。 有效值为 0 到 360。

    colors:Array (default = null) — 定义渐变的颜色数组。 例如,红色为 0xFF0000,蓝色为 0x0000FF 等等。

    alphas:Array (default = null)colors 数组中对应颜色的 Alpha 透明度值的数组。 数组中每个元素的有效值为 0 到 1。 例如,值 .25 将 Alpha 透明度值设置为 25%。

    ratios:Array (default = null) — 颜色分布比例的数组。 有效值为 0 到 255。 该值定义颜色采样率为 100% 之处的宽度百分比。

    blurX:Number (default = 4.0) — 水平模糊量。 有效值为 0 到 255。 如果模糊量小于或等于 1,则表明原始图像是按原样复制的。 2 的乘方值(如 2、4、8、16 和 32)经过优化,呈现速度比其它值更快。

    blurY:Number (default = 4.0) — 垂直模糊量。 有效值为 0 到 255。 如果模糊量小于或等于 1,则表明原始图像是按原样复制的。 2 的乘方值(如 2、4、8、16 和 32)经过优化,呈现速度比其它值更快。

    strength:Number (default = 1) — 印记或跨页的强度。 该值越高,压印的颜色越深,而且发光与背景之间的对比度也越强。 有效值为 0 到 255。 值越大,压印越强。 值为 0 意味着未应用滤镜。

    quality:int (default = 1) — 应用滤镜的次数。 使用 BitmapFilterQuality 常数:

    type:String (default = "inner") — 滤镜效果的放置。 可能的值是 flash.filters.BitmapFilterType 常数:

    knockout:Boolean (default = false) — 指定对象是否具有挖空效果。 应用挖空效果将使对象的填充变为透明,并显示文档的背景颜色。 值为 true 将指定应用挖空效果;默认值为 false,即不应用挖空效果。

    例子:

     1 package {
     2     import flash.display.Sprite;
     3     import flash.filters.BitmapFilter;
     4     import flash.filters.BitmapFilterQuality;
     5     import flash.filters.BitmapFilterType;
     6     import flash.filters.GradientBevelFilter;
     7     
     8     public class GradientBevelFilterExample extends Sprite {
     9         private var bgColor:uint     = 0xCCffCC;
    10         private var size:uint        = 400;
    11         private var offset:uint      = 50;
    12         
    13         //设置偏移距离,和angleInDegree一起使用,60表示偏移的距离大小
    14         private var distance:Number  = 60;
    15         //设置偏移方向,270表示向正方向偏移
    16         private var angleInDegree:Number = 270;
    17         //设置用于渐变的颜色的集合
    18         private var colors:Array     = [0xFF0000, 0xFF0000, 0xff0000, 0xff0000,0xFFffff];
    19         //通过透明度的递减来实现渐变效果,和颜色对应
    20         private var alphas:Array     = [0.6, 0.4, 0.3, 0.2,0.1];
    21         private var ratios:Array     = [0,150,185, 220, 255];
    22         //该属性控制在X方向渐变的范围
    23         private var blurX:Number     = 300;
    24         //该属性控制在Y方向起作用的渐变范围
    25         private var blurY:Number     = 200;
    26         //改属性控制颜色的区分度
    27         private var strength:Number  = 1;
    28         private var quality:Number   = BitmapFilterQuality.HIGH;
    29         //改属性控制渐变扩散的方向,向内还是向外,还是既内又外
    30         private var type:String      = BitmapFilterType.INNER;
    31         private var knockout:Boolean = true;
    32         
    33         public function GradientBevelFilterExample() {
    34             draw();
    35             var filter:BitmapFilter = getBitmapFilter();
    36             var myFilters:Array = new Array();
    37             myFilters.push(filter);
    38             filters = myFilters;
    39         }
    40         
    41         
    42         private function getBitmapFilter():BitmapFilter {
    43             return new GradientBevelFilter(distance,
    44                 angleInDegree,
    45                 colors,
    46                 alphas,
    47                 ratios,
    48                 blurX,
    49                 blurY,
    50                 strength,
    51                 quality,
    52                 type,
    53                 knockout);
    54         }
    55         
    56         private function draw():void {
    57             graphics.beginFill(bgColor);
    58             graphics.drawRect(offset, offset, size, size);
    59             graphics.endFill();
    60         }
    61     }
    62 }
  • 相关阅读:
    PHP实反向代理-收藏
    微信小程序实例-获取当前的地理位置、速度
    Entity Framework Core 实现读写分离
    将ASP.NET Core应用程序部署至生产环境中(CentOS7)(转)
    Centos 7防火墙firewalld开放80端口
    Asp.net Core 使用Redis存储Session
    .net core 使用Autofac依赖注入
    .net core 1.0 实现负载多服务器单点登录
    用ASP.NET Core 1.0中实现邮件发送功能-阿里云邮件推送篇
    阿里大鱼.net core 发送短信
  • 原文地址:https://www.cnblogs.com/hisiqi/p/2715922.html
Copyright © 2011-2022 走看看