包 | 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(); } } }