包 | spark.filters |
类 | public class BlurFilter |
继承 | BlurFilter ![]() ![]() ![]() |
实现 | IBitmapFilter |
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4 |
运行时版本: | Flash Player 10, AIR 1.5 |
quality
属性设置为低时,结果为柔化的、未聚焦的外观。当 quality
属性设置为高时,该属性接近高斯模糊滤镜。您可以将滤镜应用于任何显示对象(即,从 DisplayObject 类继承的对象),例如 MovieClip、SimpleButton、TextField 和 Video 对象,以及 BitmapData 对象。
要创建新的滤镜,请使用构造函数 new BlurFilter()
。滤镜的具体使用取决于要应用滤镜的对象:
- 要对影片剪辑、文本字段、按钮和视频应用滤镜,请使用
filters
属性(继承自 DisplayObject)。设置对象的filters
属性不会修改相应的对象,而清除filters
属性可以删除相应的滤镜。 - 要对 BitmapData 对象应用滤镜,请使用
BitmapData.applyFilter()
方法。对 BitmapData 对象调用applyFilter()
会取得源 BitmapData 对象和滤镜对象,并最终生成一个过滤图像。
如果对显示对象应用滤镜,显示对象的 cacheAsBitmap
属性将设置为 true
。如果删除所有滤镜,将恢复 cacheAsBitmap
的原始值。
此滤镜支持舞台缩放。但是,它不支持常规缩放、旋转和倾斜。如果对象本身进行了缩放(scaleX
和 scaleY
未设置为 100%),滤镜效果将不进行缩放。只有用户在舞台上进行放大时它才会缩放。
如果所得图像超过最大尺寸,则不应用滤镜。在 AIR 1.5 和 Flash Player 10 中,最大宽度或高度为 8,191 像素,并且像素总数不能超过 16,777,215 像素。(因此,如果图像的宽度为 8,191 像素,则其高度只能为 2,048 像素。)例如,如果在放大某大型影片剪辑时应用了滤镜,则所得图像超过最大尺寸时,将关闭该滤镜。
MXML 语法
The <s:BlurFilter>
tag inherits all of the tag
attributes of its superclass and adds the following tag attributes:
<s:BlurFilter Properties blurX="4.0" blurY="4.0" quality="low" />
相关 API 元素
flash.display.DisplayObject.filters
flash.display.DisplayObject.cacheAsBitmap
flash.display.BitmapData.applyFilter()
属性 | 由以下参数定义 | ||
---|---|---|---|
blurX : Number
水平模糊量。 | BlurFilter | ||
blurY : Number
垂直模糊量。 | BlurFilter | ||
![]() | constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | |
quality : int
应用滤镜的次数。 | BlurFilter |
方法 | 由以下参数定义 | ||
---|---|---|---|
构造函数。 | BlurFilter | ||
![]() | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 | EventDispatcher | |
返回此滤镜对象的副本。 | BlurFilter | ||
![]() |
将事件调度到事件流中。 | EventDispatcher | |
![]() |
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 | EventDispatcher | |
![]() |
表示对象是否已经定义了指定的属性。 | Object | |
![]() |
表示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | |
![]() |
过滤器更改后传播更改事件。 | BaseFilter | |
![]() |
表示指定的属性是否存在、是否可枚举。 | Object | |
![]() |
从 EventDispatcher 对象中删除侦听器。 | EventDispatcher | |
![]() |
设置循环操作动态属性的可用性。 | Object | |
![]() |
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。 | Object | |
![]() |
返回指定对象的字符串表示形式。 | Object | |
![]() |
返回指定对象的原始值。 | Object | |
![]() |
检查是否用此 EventDispatcher 对象或其任何祖代为指定事件类型注册了事件侦听器。 | EventDispatcher |
blurX | 属性 |
blurY | 属性 |
quality | 属性 |
quality:int
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4 |
运行时版本: | Flash Player 10, AIR 1.5 |
应用滤镜的次数。默认值为 BitmapFilterQuality.LOW
,与应用一次滤镜等效。值 BitmapFilterQuality.MEDIUM
两次应用滤镜;值 BitmapFilterQuality.HIGH
三次应用滤镜。滤镜的值越小,呈示速度越快。
对于大多数应用,quality 的值为低、中或高就足够了。您可以使用其他数值(最高为 15)来达到不同的效果,但是值越高,呈示速度越慢。除了增加 quality 的值,仅增加 blurX
和 blurY
属性的值通常也可以获得类似的效果,而且呈示速度更快。
默认值为 "low"。
实现
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 |
产品版本: | Flex 4 |
运行时版本: | Flash Player 10, AIR 1.5 |
构造函数。默认值会创建一个柔化的、未聚焦的图像。
参数blurX:Number (default = 4.0 ) — 水平模糊量。有效值为 0 到 255.0(浮点值)。
| |
blurY:Number (default = 4.0 ) — 垂直模糊量。有效值为 0 到 255.0(浮点值)。
| |
quality:int (default = 1 ) — 应用滤镜的次数。可以使用 flash.filters.BitmapFilterQuality 常量来指定品质:
高品质接近高斯模糊。对于大多数应用,这三个值已足够了。虽然您可以使用不超过 15 的其它数值来达到不同的效果,但是请注意,值越高,呈现速度越慢。 |
clone | () | 方法 |
public function clone():BitmapFilter
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4 |
运行时版本: | Flash Player 10, AIR 1.5 |
返回此滤镜对象的副本。
返回BitmapFilter — 具有与原始 BlurFilter 实例相同的所有属性的新 BlurFilter 实例。
|
<?xml version="1.0"?> <!-- filters/examples/BlurFilterExample.mxml --> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:s="library://ns.adobe.com/flex/spark" creationComplete="createFilters()"> <fx:Script><![CDATA[ import spark.filters.*; import flash.filters.BitmapFilterQuality; import flash.filters.BitmapFilterType; private var myBlurFilter:BlurFilter; private var color:Number = 0xFF33FF; public function createFilters():void { myBlurFilter = new BlurFilter(3, 3, BitmapFilterQuality.MEDIUM); b1.filters = [myBlurFilter]; } ]]></fx:Script> <s:VGroup> <!-- This button has a filter applied in ActionScript. --> <s:Button id="b1" label="Click me"/> <!-- This button has a filter applied in MXML. --> <s:Button id="b2" label="Click me"> <s:filters> <s:BlurFilter blurX="3" blurY="3" quality="{BitmapFilterQuality.MEDIUM}"/> </s:filters> </s:Button> </s:VGroup> </s:Application>
Tue Jun 12 2018, 11:04 AM Z