flash.filters
public final class BlurFilter
继承BlurFilter Inheritance BitmapFilter Inheritance Object

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

可使用 BlurFilter 类将模糊视觉效果应用于显示对象。模糊效果可以柔化图像的细节。您可以生成一些模糊效果,范围从创建一个柔化的、未聚焦的外观到高斯模糊(就像通过半透明玻璃查看图像一样的朦胧的外观)。当此滤镜的 quality 属性设置为低时,结果为柔化的、未聚焦的外观。当 quality 属性设置为高时,该属性接近高斯模糊滤镜。您可以将滤镜应用于任何显示对象(即,从 DisplayObject 类继承的对象),例如 MovieClip、SimpleButton、TextField 和 Video 对象,以及 BitmapData 对象。

若要创建新的滤镜,请使用构造函数 new BlurFilter()。滤镜的具体使用取决于要应用滤镜的对象:

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

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

如果所得图像超过最大尺寸,则不应用滤镜。在 AIR 1.5 和 Flash Player 10 中,最大宽度或高度为 8,192 像素,并且像素总数不能超过 16,777,216 像素。(因此,如果图像的宽度为 8,192 像素,则其高度只能为 2,048 像素。)在 Flash Player 9 及早期版本和 AIR 1.1 及早期版本中,高度最大为 2,880 像素,宽度最大为 2,880 像素。 例如,如果在放大某大型影片剪辑时应用了滤镜,则所得图像超过最大尺寸时,将关闭该滤镜。

查看示例

另请参见

flash.display.DisplayObject.filters
flash.display.DisplayObject.cacheAsBitmap
flash.display.BitmapData.applyFilter()
Using filters in Flex


公共属性
 属性定义方
  blurX : Number
水平模糊量。
BlurFilter
  blurY : Number
垂直模糊量。
BlurFilter
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
 Inheritedprototype : Object
[静态] 对类或函数对象的原型对象的引用。
Object
  quality : int
执行模糊的次数。
BlurFilter
公共方法
 方法定义方
  
BlurFilter(blurX:Number = 4.0, blurY:Number = 4.0, quality:int = 1)
用指定参数初始化滤镜。
BlurFilter
  
返回此滤镜对象的副本。
BlurFilter
 Inherited
指示对象是否已经定义了指定的属性。
Object
 Inherited
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
 Inherited
指示指定的属性是否存在、是否可枚举。
Object
 Inherited
设置循环操作动态属性的可用性。
Object
 Inherited
返回指定对象的字符串表示形式。
Object
 Inherited
返回指定对象的原始值。
Object
属性详细信息
blurX属性
blurX:Number  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

水平模糊量。有效值为从 0 到 255(浮点)。默认值为 4。2 的乘方值(如 2、4、8、16 和 32)经过优化,呈现速度比其它值更快。



实现
    public function get blurX():Number
    public function set blurX(value:Number):void
blurY属性 
blurY:Number  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

垂直模糊量。有效值为从 0 到 255(浮点)。默认值为 4。2 的乘方值(如 2、4、8、16 和 32)经过优化,呈现速度比其它值更快。



实现
    public function get blurY():Number
    public function set blurY(value:Number):void
quality属性 
quality:int  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

执行模糊的次数。默认值为 BitmapFilterQuality.LOW,与应用一次滤镜等效。值 BitmapFilterQuality.MEDIUM 两次应用滤镜;值 BitmapFilterQuality.HIGH 三次应用滤镜并接近高斯模糊。滤镜的值越小,呈现速度越快。

对于大多数应用,quality 的值为低、中或高就足够了。虽然您可以使用不超过 15 的其它数值来增加应用模糊的次数,但该数值越高,呈现速度就越慢。除了增加 quality 的值,仅增加 blurXblurY 属性的值通常也可以获得类似的效果,而且呈现速度更快。

您可以使用以下 BitmapFilterQuality 常数指定 quality 属性的值:



实现
    public function get quality():int
    public function set quality(value:int):void
构造函数详细信息
BlurFilter()构造函数
public function BlurFilter(blurX:Number = 4.0, blurY:Number = 4.0, quality:int = 1)

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

用指定参数初始化滤镜。默认值会创建一个柔化的、未聚焦的图像。

参数
blurX:Number (default = 4.0) — 水平模糊量。有效值为 0 到 255.0(浮点值)。
 
blurY:Number (default = 4.0) — 垂直模糊量。有效值为 0 到 255.0(浮点值)。
 
quality:int (default = 1) — 应用滤镜的次数。您可以使用 BitmapFilterQuality 常数来指定品质:
  • flash.filters.BitmapFilterQuality.LOW
  • flash.filters.BitmapFilterQuality.MEDIUM
  • flash.filters.BitmapFilterQuality.HIGH

高品质接近高斯模糊。对于大多数应用,这三个值已足够了。虽然您可以使用不超过 15 的其它数值来达到不同的效果,但是请注意,值越高,呈现速度越慢。

方法详细信息
clone()方法
override public function clone():BitmapFilter

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

返回此滤镜对象的副本。

返回
BitmapFilter — 具有与原始 BlurFilter 实例相同的所有属性的新 BlurFilter 实例。
示例 如何使用示例
BlurFilterExample.as

以下示例创建了一个深黄色正方形并对其应用高斯样式模糊滤镜。该示例的一般工作流程如下:
  1. 导入所需的类。
  2. 声明 draw() 函数所用的三个属性,该函数绘制应用了模糊滤镜的对象。
  3. 创建 BlurFilterExample() 构造函数,该函数执行以下操作:
    • 调用稍后将声明的 draw() 函数。
    • filter 变量声明为 BitmapFilter 对象,并将它分配给对 getBitmapFilter() 的调用的返回值。
    • 创建一个新的 Array 对象 myFilters 并将 filter 添加到该数组,将 myFilters 分配给 BlurFilterExample 对象的 filters 属性。这将应用 myFilters 中包含的所有滤镜,在本例中仅为 filter
  4. 创建 getBitmapFilter() 函数,以创建和设置滤镜的属性。
  5. 创建 draw() 函数。该函数使用 Graphics 类的方法(通过 Sprite 类的 graphics 属性访问)绘制正方形。
package {
    import flash.display.Sprite;
    import flash.filters.BitmapFilter;
    import flash.filters.BitmapFilterQuality;
    import flash.filters.BlurFilter;

    public class BlurFilterExample extends Sprite {
        private var bgColor:uint = 0xFFCC00;
        private var size:uint    = 80;
        private var offset:uint  = 50;

        public function BlurFilterExample() {
            draw();
            var filter:BitmapFilter = getBitmapFilter();
            var myFilters:Array = new Array();
            myFilters.push(filter);
            filters = myFilters;
        }

        private function getBitmapFilter():BitmapFilter {
            var blurX:Number = 30;
            var blurY:Number = 30;
            return new BlurFilter(blurX, blurY, BitmapFilterQuality.HIGH);
        }

        private function draw():void {
            graphics.beginFill(bgColor);
            graphics.drawRect(offset, offset, size, size);
            graphics.endFill();
        }
    }
}