很抱歉這個濾鏡不會給你帶來期待的驚喜,GlowFilter只是建立放光效果。確切的說,是在元件周圍建立不同透明度的發光顏色填充(不過,這個名字實在太長了)。它的屬性實際上是DropShadowFilter的子集,其建構函式如下:
GlowFilter (
color:uint = 16711680,
alpha:Number = 1,
blurX:Number = 6,
blurY:Number = 6,
strength:Number = 2,
quality:int = 1,
inner:Boolean = false,
knockout:Boolean = false
)
參數
|
color: (default = 0xFF0000) — 光暈顏色,採用十六進位格式 0xRRGGBB。 預設值為 0xFF0000。 |
| |
|
alpha: (default = 1.0) — 顏色的 Alpha 透明度值。 有效值為 0 到 1。 例如,.25 設定透明度值為 25%。 |
| |
|
blurX: (default = 6.0) — 水平模糊量。 有效值為 0 到 255(浮點)。 2 的乘方值(如 2、4、8、16 和 32)經過最佳化,呈現速度比其它值更快。 |
| |
|
blurY: (default = 6.0) — 垂直模糊量。 有效值為 0 到 255(浮點)。 2 的乘方值(如 2、4、8、16 和 32)經過最佳化,呈現速度比其它值更快。 |
| |
|
strength: (default = 2) — 印記或跨頁的強度。 該值越高,壓印的顏色越深,而且發光與背景之間的對比也越強。 有效值為 0 到 255。 |
| |
|
quality: (default = 1) — 應用濾鏡的次數。 使用 BitmapFilterQuality 常數:
- BitmapFilterQuality.LOW
- BitmapFilterQuality.MEDIUM
- BitmapFilterQuality.HIGH
有關詳細資料,請參閱 quality 屬性的說明。 |
| |
|
inner: (default = false) — 指定發光是否為內側發光。 值 true 指定發光是內側發光。 值 false 指定發光是外側發光(對象外緣周圍的發光)。 |
| |
|
knockout: (default = false) — 指定對象是否具有挖空效果。 值為 true 將使對象的填充變為透明,並顯示文檔的背景顏色。 |
它與DropShadowFilter最大的不同是無法設定distance和angle。也就是說光暈效果總是沿著對象的邊緣(也可以解釋為,光暈效果是distance設為0,且無角度參數永遠沿著邊緣投影的投影濾鏡)。
如果你需要沿著邊緣繪製光暈效果可以使用GlowFilter。它的主要用途主要有:為互動按鈕添加滑鼠滑過效果;為文字添加內發光,使其突出於背景映像;為剪影映像輪廓邊緣添加發光邊框的等。 GlowFilter的用途中我最喜歡的是為對象添加實色輪廓線。將blurX和blurY將至2,同時增加強度strength,然後通過quality的設定值來調節輪廓線的粗細。2-19.
圖2-19.應用GlowFilter的矩形shape,同時文字添加了輪廓線效果
package {
import flash.filters.BitmapFilterQuality;
import flash.filters.GlowFilter;
import flash.text.TextField;
import flash.text.TextFormat;
import flash.text.TextFormatAlign;
[SWF(width=550, height=400, backgroundColor=0xEEEEEE)]
public class GlowFilterTest extends BitmapFilterTest {
override protected function applyFilter():void {
var filter:GlowFilter = new GlowFilter(0x000000);
filter.blurX = 2;
filter.blurY = 2;
filter.strength = 255;
filter.quality = BitmapFilterQuality.MEDIUM;
filter.knockout = true;
_shape.filters = [filter];
// creates a textfield to which to apply a glow
var field:TextField = new TextField();
var textFormat:TextFormat = new TextFormat("Arial", 40);
textFormat.align = TextFormatAlign.CENTER;
field.multiline = true;
field.defaultTextFormat = textFormat;
field.text = "Glow\nFilter";
field.x = _shape.x - field.width/2;
field.y = _shape.y - field.height/2;
field.filters = [filter];
addChild(field);
}
}
}這個類繼承BitmapFilterTest類,同時應用到_shape對象上,另外添加了TextField對象更好的展示濾鏡的效果。濾鏡的模糊亮很小,而強度很大,同時設定了knockout屬性剔除原有的填充色,應用到_shape和TextField對象上之後,好的展示了輪廓線的效果。