| 包 | flash.filters |
| 类 | public final class BlurFilter |
| 继承 | BlurFilter BitmapFilter Object |
| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0 Flash Player 9 |
quality 属性设置为低时,结果为柔化的、未聚焦的外观。当 quality 属性设置为高时,该属性接近高斯模糊滤镜。您可以将滤镜应用于任何显示对象(即,从 DisplayObject 类继承的对象),例如 MovieClip、SimpleButton、TextField 和 Video 对象,以及 BitmapData 对象。
若要创建新的滤镜,请使用构造函数 new BlurFilter()。滤镜的具体使用取决于要应用滤镜的对象:
filters 属性(继承自 DisplayObject)。设置对象的 filters 属性不会修改相应的对象,而清除 filters 属性可以删除相应的滤镜。
BitmapData.applyFilter() 方法。对 BitmapData 对象调用 applyFilter() 会取得源 BitmapData 对象和滤镜对象,并最终生成一个过滤图像。
如果对显示对象应用滤镜,显示对象的 cacheAsBitmap 属性将设置为 true。如果删除所有滤镜,将恢复 cacheAsBitmap 的原始值。
此滤镜支持舞台缩放。但是,它不支持常规缩放、旋转和倾斜。如果对象本身进行了缩放(scaleX 和 scaleY 未设置为 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 像素。 例如,如果在放大某大型影片剪辑时应用了滤镜,则所得图像超过最大尺寸时,将关闭该滤镜。
另请参见
| 属性 | 定义方 | ||
|---|---|---|---|
| blurX : Number 水平模糊量。 | BlurFilter | ||
| blurY : Number 垂直模糊量。 | BlurFilter | ||
![]() | constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | |
![]() | prototype : Object [静态]
对类或函数对象的原型对象的引用。 | Object | |
| quality : int 执行模糊的次数。 | BlurFilter | ||
| 方法 | 定义方 | ||
|---|---|---|---|
用指定参数初始化滤镜。 | BlurFilter | ||
返回此滤镜对象的副本。 | BlurFilter | ||
![]() |
指示对象是否已经定义了指定的属性。 | Object | |
![]() |
指示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | |
![]() |
指示指定的属性是否存在、是否可枚举。 | Object | |
![]() |
设置循环操作动态属性的可用性。 | Object | |
![]() |
返回指定对象的字符串表示形式。 | Object | |
![]() |
返回指定对象的原始值。 | 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 的值,仅增加 blurX 和 blurY 属性的值通常也可以获得类似的效果,而且呈现速度更快。
您可以使用以下 BitmapFilterQuality 常数指定 quality 属性的值:
BitmapFilterQuality.LOW
BitmapFilterQuality.MEDIUM
BitmapFilterQuality.HIGH
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 常数来指定品质:
高品质接近高斯模糊。对于大多数应用,这三个值已足够了。虽然您可以使用不超过 15 的其它数值来达到不同的效果,但是请注意,值越高,呈现速度越慢。 |
| clone | () | 方法 |
override public function clone():BitmapFilter| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0 Flash Player 9 |
返回此滤镜对象的副本。
返回BitmapFilter — 具有与原始 BlurFilter 实例相同的所有属性的新 BlurFilter 实例。 |
draw() 函数所用的三个属性,该函数绘制应用了模糊滤镜的对象。
BlurFilterExample() 构造函数,该函数执行以下操作:
draw() 函数。
filter 变量声明为 BitmapFilter 对象,并将它分配给对 getBitmapFilter() 的调用的返回值。
myFilters 并将 filter 添加到该数组,将 myFilters 分配给 BlurFilterExample 对象的 filters 属性。这将应用 myFilters 中包含的所有滤镜,在本例中仅为 filter。
getBitmapFilter() 函数,以创建和设置滤镜的属性。
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();
}
}
}