套件 | flash.filters |
類別 | public final class GradientBevelFilter |
繼承 | GradientBevelFilter BitmapFilter Object |
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
濾鏡的使用取決於濾鏡套用到的物件:
- 若要將濾鏡套用至顯示物件,請使用
filters
屬性。 設定物件的filters
屬性不會修改該物件,而且只要清除filters
屬性就可以移除濾鏡。 - 若要將濾鏡套用至 BitmapData 物件,請使用
BitmapData.applyFilter()
方法。 對 BitmapData 物件呼叫applyFilter()
時會採用原始 BitmapData 物件和濾鏡物件,結果會產生套用濾鏡後的影像。
如果您將濾鏡套用至顯示物件,該顯示物件的 cacheAsBitmap
屬性就會設定為 true
。 如果您清除所有濾鏡,則會還原 cacheAsBitmap
的原始值。
這個濾鏡支援舞台縮放。但不支援一般的縮放、旋轉或傾斜操作。如果是縮放物件本身 (如果 scaleX
和 scaleY
設定為 1.0 以外的值),則不會縮放濾鏡特效。 濾鏡只在使用者在「舞台」上放大顯示時才會進行縮放。
如果產生的影像超過最大尺寸,系統就不會套用濾鏡。在 AIR 1.5 和 Flash Player 10 中,最大寬度或高度為 8,191 像素,而且像素總計不得超過 16,777,215 像素。(因此,如果影像寬度為 8,191 像素,則其高度上限為 2,048 像素)。若為 Flash Player 9 和 AIR 1.1 及其更早版本,高度和寬度的上限都是 2,880 像素。例如,當您在套用某個濾鏡的大型影片片段上進行放大顯示時,如果產生的影像超過最大尺寸,便會關閉該濾鏡。
相關 API 元素
flash.display.BitmapData.applyFilter()
BevelFilter
flash.display.DisplayObject.filters
flash.display.DisplayObject.cacheAsBitmap
屬性 | 定義自 | ||
---|---|---|---|
alphas : Array
在 colors 陣列中,其對應顏色之 Alpha 透明度值的陣列。 | GradientBevelFilter | ||
angle : Number
角度,以度數為單位。 | GradientBevelFilter | ||
blurX : Number
水平模糊化量。 | GradientBevelFilter | ||
blurY : Number
垂直模糊化量。 | GradientBevelFilter | ||
colors : Array
用於漸層的 RGB 十六進位顏色值的陣列。 | GradientBevelFilter | ||
constructor : Object
類別物件的參照或是特定物件實體的建構函數。 | Object | ||
distance : Number
偏移距離。 | GradientBevelFilter | ||
knockout : Boolean
指定物件是否具有去底色特效。 | GradientBevelFilter | ||
quality : int
套用濾鏡的次數。 | GradientBevelFilter | ||
ratios : Array
在 colors 陣列中,其對應顏色的顏色分佈比例陣列。 | GradientBevelFilter | ||
strength : Number
壓印強度或範圍。 | GradientBevelFilter | ||
type : String
斜角特效的位置。 | GradientBevelFilter |
方法 | 定義自 | ||
---|---|---|---|
GradientBevelFilter(distance:Number = 4.0, angle:Number = 45, colors:Array = null, alphas:Array = null, ratios:Array = null, blurX:Number = 4.0, blurY:Number = 4.0, strength:Number = 1, quality:int = 1, type:String = "inner", knockout:Boolean = false)
以指定的參數初始化濾鏡。 | GradientBevelFilter | ||
[覆寫]
傳回此濾鏡物件的副本。 | GradientBevelFilter | ||
指出物件是否有已定義的指定屬性。 | Object | ||
指出 Object 類別的實體是否位於指定為參數的物件原型鏈中。 | Object | ||
指出指定的屬性是否存在,以及是否可列舉。 | Object | ||
為迴圈作業設定動態屬性的可用性。 | Object | ||
傳回代表此物件的字串,根據地區特定慣例進行格式化。 | Object | ||
會傳回指定之物件的字串形式。 | Object | ||
會傳回指定之物件的基本值。 | Object |
alphas | 屬性 |
alphas:Array
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
在 colors
陣列中,其對應顏色之 Alpha 透明度值的陣列。 陣列中每一個元素的有效值為 0 到 1。 例如,.25 會設定 25% 的透明度值。
alphas
屬性無法藉由直接修改其值來變更。 相反地,您必須先取得 alphas
的參照,再對參照進行變更,然後將 alphas
設為該參照。
colors
、alphas
和 ratios
屬性都彼此相關。 colors
陣列的第一個元素會對應到 alphas
陣列和 ratios
陣列的第一個元素,以下則依此類推。
實作
public function get alphas():Array
public function set alphas(value:Array):void
擲回值
TypeError — 設定時,Array 為 null
|
相關 API 元素
angle | 屬性 |
angle:Number
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
角度,以度數為單位。 有效值為 0 到 360。 預設值為 45。
angle 值代表假設性光源照射物件的角度,可以決定相對於物件的特效呈現位置。 這個值會決定漸層顏色套用到物件的角度: 這個物件會出現反白標示和陰影,或顯示陣列內的第一個顏色, 然後依照顏色在陣列中出現的順序來套用顏色。
實作
public function get angle():Number
public function set angle(value:Number):void
相關 API 元素
blurX | 屬性 |
blurY | 屬性 |
colors | 屬性 |
colors:Array
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
用於漸層的 RGB 十六進位顏色值的陣列。例如,紅色是 0xFF0000、藍色是 0x0000FF,依此類推。
colors
屬性無法藉由直接修改其值來變更。 相反地,您必須先取得 colors
的參照,再對參照進行變更,然後將 colors
設為該參照。
colors
、alphas
和 ratios
屬性都彼此相關。 colors
陣列的第一個元素會對應到 alphas
陣列和 ratios
陣列的第一個元素,以下則依此類推。
實作
public function get colors():Array
public function set colors(value:Array):void
擲回值
TypeError — 設定時,Array 為 null
|
相關 API 元素
distance | 屬性 |
knockout | 屬性 |
quality | 屬性 |
quality:int
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
套用濾鏡的次數。 預設值為 BitmapFilterQuality.LOW
(相當於套用一次濾鏡)。 BitmapFilterQuality.MEDIUM
值會套用兩次濾鏡,而 BitmapFilterQuality.HIGH
值會套用三次濾鏡。 設定值較低的濾鏡,其顯示速度較快。
對大部份應用程式而言,將 quality
值設為低、中或高就足夠了。 雖然您可以使用其他數值 (最高可至 15) 來達成不同的效果,但越高的值就代表越緩慢的顯示速度。 只要增加 blurX
和 blurY
屬性的值,通常就可以得到類似的效果和較快的顯示速度,而不需要增加 quality
的值。
實作
public function get quality():int
public function set quality(value:int):void
相關 API 元素
ratios | 屬性 |
ratios:Array
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
在 colors
陣列中,其對應顏色的顏色分佈比例陣列。 陣列中每一個元素的有效值為 0 到 255。
ratios
屬性無法藉由直接修改其值來變更。 相反地,您必須先取得 ratios
的參照,再對參照進行變更,然後將 ratios
設為該參照。
colors
、alphas
和 ratios
屬性都彼此相關。 colors
陣列的第一個元素會對應到 alphas
陣列和 ratios
陣列的第一個元素,以下則依此類推。
若要瞭解顏色在漸層斜角中的分佈情形,請先考慮您在漸層斜角中所要的顏色。 試想簡單斜角會有反白標示顏色和陰影顏色,而漸層斜角則有反白標示漸層和陰影漸層。 並假設反白標示是在左上角出現,而陰影則在右下角出現。 接著再假設一種使用濾鏡的可能方式,即是在反白標示上加入四種顏色,而在陰影中也使用四種顏色。 除了反白標示和陰影之外,濾鏡還會使用基準填色顏色,以便顯示在反白標示和陰影接合的邊緣上。 因此顏色總數是九個,而比例陣列中相應的元素也會是九個。
如果您將漸層想成是由各種顏色條紋相互摻合所構成,那麼每個比例值的作用就是設定顏色在漸層半徑上的位置,其中 0 代表漸層最外面的點,而 255 則代表漸層最裡面的點。 在一般的使用方式上,中間值是 128,也就是基準填色值。 若要獲得下面影像所展示的斜角特效,請使用上述九個顏色的範例,依下列方式指定比例值:
- 後面四個顏色的範圍是從 0 到 127,其數值應該依次遞增,讓每個值大於或等於前一個。 這樣會產生反白標示斜角邊緣。
- 第五個顏色 (中間的顏色) 是基準填色,設定為 128。 像素值為 128 就會設定成基準填色;如果將類型設為 outer (外部),這個顏色便會在形狀外面 (且沿著斜角邊緣周圍) 出現;如果類型是設為 inner (內部),則會在形狀內部,有效地覆蓋物件本身的填色。
- 後面四個顏色的範圍是從 129 到 255,其數值應該依次遞增,讓每個值大於或等於前一個。 這樣會產生陰影斜角邊緣。
如果要均等分佈每個邊緣的顏色,請使用奇數個顏色,而在中間的顏色就是基準填色。 請將 0 到 127 之間以及 129 到 255 之間的數值均等地分佈在您的顏色之中,然後調整數值以變更漸層中每一條顏色的寬度。 就含有九種顏色的漸層斜角而言,可能產生的陣列會是 [16, 32, 64, 96, 128, 160, 192, 224, 235]。 下列影像依照上述方式描繪出漸層斜角:
請記住,漸層中的顏色塗佈會根據 blurX
、blurY
、strength
和 quality
屬性的值,以及 ratios
值產生變化。
實作
public function get ratios():Array
public function set ratios(value:Array):void
擲回值
TypeError — 設定時,Array 為 null
|
相關 API 元素
strength | 屬性 |
type | 屬性 |
GradientBevelFilter | () | 建構函式 |
public function GradientBevelFilter(distance:Number = 4.0, angle:Number = 45, colors:Array = null, alphas:Array = null, ratios:Array = null, blurX:Number = 4.0, blurY:Number = 4.0, strength:Number = 1, quality:int = 1, type:String = "inner", knockout:Boolean = false)
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
以指定的參數初始化濾鏡。
參數distance:Number (default = 4.0 ) — 偏移距離。 有效值為 0 到 8。
| |
angle:Number (default = 45 ) — 角度,以度數為單位。 有效值為 0 到 360。
| |
colors:Array (default = null ) — 用於漸層的 RGB 十六進位顏色值的陣列。例如,紅色是 0xFF0000、藍色是 0x0000FF,依此類推。
| |
alphas:Array (default = null ) — 在 colors 陣列中,其對應顏色之 Alpha 透明度值的陣列。 陣列中每一個元素的有效值為 0 到 1。 例如,.25 會設定 25% 的透明度值。
| |
ratios:Array (default = null ) — 顏色分佈比例的陣列。有效值為 0 到 255。
| |
blurX:Number (default = 4.0 ) — 水平模糊化量。 有效值為 0 到 255。 值為 1 或更小的模糊化表示依照原始影像複製。 預設值為 4。 2 的冪次方數值 (如 2、4、8、16 和 32) 是經過最佳化的,以便在顯示時會比其他值更為快速。
| |
blurY:Number (default = 4.0 ) — 垂直模糊化量。 有效值為 0 到 255。 值為 1 或更小的模糊化表示依照原始影像複製。 2 的冪次方數值 (如 2、4、8、16 和 32) 是經過最佳化的,以便在顯示時會比其他值更為快速。
| |
strength:Number (default = 1 ) — 壓印強度或範圍。 數值越高,便壓印越多顏色,斜角與背景之間的對比越強烈。 有效值為 0 到 255。 值為 0 時表示未套用濾鏡。
| |
quality:int (default = 1 ) — 濾鏡的品質。 請使用 BitmapFilterQuality 常數:
如需詳細資訊,請參閱 | |
type:String (default = "inner ") — 斜角特效的位置。 可能的值為 BitmapFilterType 常數:
| |
knockout:Boolean (default = false ) — 會指定是否套用去底色特效。 true 值可以讓物件的填色透明,並顯露出文件的背景顏色。
|
相關 API 元素
clone | () | 方法 |
override public function clone():BitmapFilter
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
傳回此濾鏡物件的副本。
傳回值BitmapFilter — 新的 GradientBevelFilter 實體,其所有的屬性都和原始的 GradientBevelFilter 實體相同。
|
- 匯入所需的類別。
- 宣告全域變數以定義方形和濾鏡。
- 建立建構函數,以進行下列動作:
- 呼叫
draw()
方法,使用 Graphics 類別的方法 (透過 Sprite 的graphics
屬性存取) 來繪製灰色方形。 - 建立名為
filter
的 BitmapFilter 物件,並為其指定getBitmapFilter()
呼叫 (建立濾鏡) 的傳回值。 - 建立名為
myFilters
的新陣列,並將filter
加入此陣列。 - 將
myFilters
指定給 GradientBevelFilterExample 物件的filters
屬性。 這樣就會套用myFilters
中找到的所有濾鏡,而在本範例中只有filter
。
- 呼叫
package { import flash.display.Sprite; import flash.filters.BitmapFilter; import flash.filters.BitmapFilterQuality; import flash.filters.BitmapFilterType; import flash.filters.GradientBevelFilter; public class GradientBevelFilterExample extends Sprite { private var bgColor:uint = 0xCCCCCC; private var size:uint = 80; private var offset:uint = 50; private var distance:Number = 5; private var angleInDegrees:Number = 225; // opposite 45 degrees private var colors:Array = [0xFFFFFF, 0xCCCCCC, 0x000000]; private var alphas:Array = [1, 0, 1]; private var ratios:Array = [0, 128, 255]; private var blurX:Number = 8; private var blurY:Number = 8; private var strength:Number = 2; private var quality:Number = BitmapFilterQuality.HIGH private var type:String = BitmapFilterType.INNER; private var knockout:Boolean = true; public function GradientBevelFilterExample() { draw(); var filter:BitmapFilter = getBitmapFilter(); var myFilters:Array = new Array(); myFilters.push(filter); filters = myFilters; } private function getBitmapFilter():BitmapFilter { return new GradientBevelFilter(distance, angleInDegrees, colors, alphas, ratios, blurX, blurY, strength, quality, type, knockout); } private function draw():void { graphics.beginFill(bgColor); graphics.drawRect(offset, offset, size, size); graphics.endFill(); } } }
Tue Jun 12 2018, 03:47 PM Z