运行时版本: | AIR 1.0 Flash Player 9 |
可使用 BevelFilter 类对显示对象添加斜角效果。斜角效果使对象(如按钮)具有三维外观。您可以利用不同的加亮颜色和阴影颜色、斜角上的模糊量、斜角的角度、斜角的位置和挖空效果来自定义斜角的外观。您可以将滤镜应用于任何显示对象(即,从 DisplayObject 类继承的对象),例如 MovieClip、SimpleButton、TextField 和 Video 对象,以及 BitmapData 对象。
要创建新滤镜,请使用构造函数 new BevelFilter()
。滤镜的具体使用取决于要应用滤镜的对象:
-
若要对影片剪辑、文本字段、按钮和视频应用滤镜,请使用
filters
属性(继承自 DisplayObject)。设置对象的 filters
属性不会修改相应的对象,而清除 filters
属性可以删除相应的滤镜。
-
若要对 BitmapData 对象应用滤镜,请使用
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 像素。 例如,如果在放大某大型影片剪辑时应用了滤镜,则所得图像超过最大尺寸时,将关闭该滤镜。
查看示例
angle:Number
[读写]
运行时版本: | AIR 1.0 Flash Player 9 |
斜角的角度。有效值为 0 到 360 度。默认值为 45 度。
角度值表示理论上的光源落在对象上的角度,它决定了效果相对于该对象的位置。如果 distance
属性设置为 0,则效果相对于对象没有偏移,因此 angle
属性不起作用。
实现 public function get angle():Number
public function set angle(value:Number):void
blurX:Number
[读写]
运行时版本: | 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:Number
[读写]
运行时版本: | 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
distance:Number
[读写]
运行时版本: | AIR 1.0 Flash Player 9 |
斜角的偏移距离。有效值以像素为单位(浮点)。默认值为 4。
实现 public function get distance():Number
public function set distance(value:Number):void
highlightAlpha:Number
[读写]
运行时版本: | AIR 1.0 Flash Player 9 |
加亮颜色的 Alpha 透明度值。该值被指定为 0 到 1 之间的标准值。例如,.25 设置透明度值为 25%。默认值为 1。
实现 public function get highlightAlpha():Number
public function set highlightAlpha(value:Number):void
highlightColor:uint
[读写]
运行时版本: | AIR 1.0 Flash Player 9 |
斜角的加亮颜色。有效值采用十六进制格式,0xRRGGBB。默认值为 0xFFFFFF。
实现 public function get highlightColor():uint
public function set highlightColor(value:uint):void
knockout:Boolean
[读写]
运行时版本: | AIR 1.0 Flash Player 9 |
应用挖空效果 (true
),这将有效地使对象的填色变为透明,并显示文档的背景颜色。默认值为 false
(不应用挖空效果)。
实现 public function get knockout():Boolean
public function set knockout(value:Boolean):void
quality:int
[读写]
运行时版本: | 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
shadowAlpha:Number
[读写]
运行时版本: | AIR 1.0 Flash Player 9 |
阴影颜色的 Alpha 透明度值。该值被指定为 0 到 1 之间的标准值。例如,.25 设置透明度值为 25%。默认值为 1。
实现 public function get shadowAlpha():Number
public function set shadowAlpha(value:Number):void
shadowColor:uint
[读写]
运行时版本: | AIR 1.0 Flash Player 9 |
斜角的阴影颜色。有效值采用十六进制格式,0xRRGGBB。默认值为 0x000000。
实现 public function get shadowColor():uint
public function set shadowColor(value:uint):void
strength:Number
[读写]
运行时版本: | AIR 1.0 Flash Player 9 |
印记或跨页的强度。有效值为 0 到 255。该值越大,印记的颜色越深,而且斜角与背景之间的对比度也越强。默认值为 1。
实现 public function get strength():Number
public function set strength(value:Number):void
type:String
[读写]
运行时版本: | AIR 1.0 Flash Player 9 |
斜角在对象上的位置。内斜角和外斜角被放置在内缘或外缘上;完全斜角被放置在整个对象上。有效值为 BitmapFilterType
常数:
-
BitmapFilterType.INNER
-
BitmapFilterType.OUTER
-
BitmapFilterType.FULL
实现 public function get type():String
public function set type(value:String):void
引发 public function BevelFilter(distance:Number = 4.0, angle:Number = 45, highlightColor:uint = 0xFFFFFF, highlightAlpha:Number = 1.0, shadowColor:uint = 0x000000, shadowAlpha:Number = 1.0, blurX:Number = 4.0, blurY:Number = 4.0, strength:Number = 1, quality:int = 1, type:String = "inner", knockout:Boolean = false)
运行时版本: | AIR 1.0 Flash Player 9 |
用指定参数初始化新的 BevelFilter 实例。
参数 | distance:Number (default = 4.0 ) — 斜角的偏移距离,以像素为单位(浮点)。 |
|
| angle:Number (default = 45 ) — 斜角的角度,0 至 360 度。 |
|
| highlightColor:uint (default = 0xFFFFFF ) —
斜角的加亮颜色,0xRRGGBB。
|
|
| highlightAlpha:Number (default = 1.0 ) — 加亮颜色的 Alpha 透明度值。有效值为 0.0 到 1.0。例如,.25 设置透明度值为 25%。 |
|
| shadowColor:uint (default = 0x000000 ) —
斜角的阴影颜色,0xRRGGBB。
|
|
| shadowAlpha:Number (default = 1.0 ) — 阴影颜色的 Alpha 透明度值。有效值为 0.0 到 1.0。例如,.25 设置透明度值为 25%。 |
|
| blurX:Number (default = 4.0 ) — 水平模糊量,以像素为单位。有效值为 0 到 255.0(浮点)。 |
|
| blurY:Number (default = 4.0 ) — 垂直模糊量,以像素为单位。有效值为 0 到 255.0(浮点)。 |
|
| strength:Number (default = 1 ) — 印记或跨页的强度。该值越高,压印的颜色越深,而且斜角与背景之间的对比度也越强。有效值为 0 到 255.0。 |
|
| quality:int (default = 1 ) —
斜角的品质。有效值为 0 至 15,但是对于大多数应用,可以使用 BitmapFilterQuality 常数:
-
BitmapFilterQuality.LOW
-
BitmapFilterQuality.MEDIUM
-
BitmapFilterQuality.HIGH
这些值越低,滤镜的呈现速度就越快。可以使用其它可用的数值来实现不同的效果。
|
|
| type:String (default = "inner ") —
斜角类型。有效值为 BitmapFilterType 常数:BitmapFilterType.INNER 、BitmapFilterType.OUTER 或 BitmapFilterType.FULL 。
|
|
| knockout:Boolean (default = false ) —
应用挖空效果 (true ),这将有效地使对象的填色变为透明,并显示文档的背景颜色。
|
另请参见
override public function clone():BitmapFilter
运行时版本: | AIR 1.0 Flash Player 9 |
返回此滤镜对象的副本。
返回 | BitmapFilter — 具有与原始 BevelFilter 实例相同的所有属性的新 BevelFilter 实例。 |
以下示例创建一个深黄色正方形,并用浅黄色 (0xFFFF00) 加亮和蓝色 (0x0000FF) 阴影应用斜角。该示例的一般工作流程如下:
- 导入所需的类。
-
声明
draw()
函数所用的三个属性,该函数绘制应用了斜角滤镜的对象。
-
创建
BevelFilterExample()
构造函数,该函数执行以下操作:
-
调用稍后将声明的
draw()
函数。
-
将变量
filter
声明为 BitmapFilter 对象,并将它分配给对 getBitmapFilter()
的调用的返回值。
-
创建一个新的 Array 对象
myFilters
并将 filter
添加到该数组,将 myFilters
分配给 BevelFilterExample 对象的 filters
属性。这将应用 myFilters
中包含的所有滤镜,在本例中仅为 filter
。
-
创建
getBitmapFilter
函数,以创建和设置滤镜的属性。
-
创建
draw()
函数。该函数使用 Graphics 类的方法(通过 Sprite 类的 graphics
属性访问)绘制正方形。
package {
import flash.display.Sprite;
import flash.filters.BevelFilter;
import flash.filters.BitmapFilter;
import flash.filters.BitmapFilterQuality;
import flash.filters.BitmapFilterType;
public class BevelFilterExample extends Sprite {
private var bgColor:uint = 0xFFCC00;
private var size:uint = 80;
private var offset:uint = 50;
public function BevelFilterExample() {
draw();
var filter:BitmapFilter = getBitmapFilter();
var myFilters:Array = new Array();
myFilters.push(filter);
filters = myFilters;
}
private function getBitmapFilter():BitmapFilter {
var distance:Number = 5;
var angleInDegrees:Number = 45;
var highlightColor:Number = 0xFFFF00;
var highlightAlpha:Number = 0.8;
var shadowColor:Number = 0x0000FF;
var shadowAlpha:Number = 0.8;
var blurX:Number = 5;
var blurY:Number = 5;
var strength:Number = 5;
var quality:Number = BitmapFilterQuality.HIGH;
var type:String = BitmapFilterType.INNER;
var knockout:Boolean = false;
return new BevelFilter(distance,
angleInDegrees,
highlightColor,
highlightAlpha,
shadowColor,
shadowAlpha,
blurX,
blurY,
strength,
quality,
type,
knockout);
}
private function draw():void {
graphics.beginFill(bgColor);
graphics.drawRect(offset, offset, size, size);
graphics.endFill();
}
}
}
© 2004-2008 Adobe Systems Incorporated. All rights reserved.
Sun Dec 14 2008, 10:39 PM -08:00