パッケージ | 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 ピクセルで幅の限界は 2,880 ピクセルです。 例えば、フィルターが適用されたサイズの大きいムービークリップをズームインするとき、結果として得られるイメージが最大サイズを超える場合は、フィルターがオフになります。
関連する API エレメント
flash.display.BitmapData.applyFilter()
BevelFilter
flash.display.DisplayObject.filters
flash.display.DisplayObject.cacheAsBitmap
プロパティ | 定義元 | ||
---|---|---|---|
alphas : Array
カラー配列内の各色に対応するアルファ透明度の値の配列です。 | GradientBevelFilter | ||
angle : Number
角度(度数)です。 | GradientBevelFilter | ||
blurX : Number
水平方向のぼかし量。 | GradientBevelFilter | ||
blurY : Number
垂直方向のぼかし量。 | GradientBevelFilter | ||
colors : Array
グラデーションで使用する RGB 16 進数カラー値の配列です。 | GradientBevelFilter | ||
constructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクター関数への参照です。 | Object | ||
distance : Number
オフセット距離です。 | GradientBevelFilter | ||
knockout : Boolean
オブジェクトにノックアウト効果を適用するかどうかを指定します。 | GradientBevelFilter | ||
quality : int
フィルターを適用する回数。 | GradientBevelFilter | ||
ratios : Array
カラー配列内の対応するカラーの色分布比率の配列です。 | 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
配列内の各色に対応するアルファ透明度の値の配列です。配列の各エレメントに指定できる値は、0 ~ 1 です。例えば、.25 を指定すると、透明度の値として 25% が設定されます。
alphas
プロパティの値を直接変更することはできません。このプロパティを変更するには、alphas
への参照を取得し、その参照を変更した後、alphas
をその参照に設定する必要があります。
colors
、alphas
、および ratios
の 3 つのプロパティは関連しています。colors
配列の先頭のエレメントが alphas
配列と ratios
配列の先頭のエレメントに対応するなど、3 つの配列の同じインデックスのエレメントが互いに対応しています。
実装
public function get alphas():Array
public function set alphas(value:Array):void
例外
TypeError — 配列は、設定時に null に設定されます。
|
関連する API エレメント
angle | プロパティ |
angle:Number
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9 |
角度(度数)です。指定できる値は 0 ~ 360 です。デフォルト値は 45 です。
角度の値は、オブジェクトに向けられる架空の光源の角度を表します。この値によって、グラデーションカラーがオブジェクトに適用されるときの角度を設定します。これによりハイライトとシャドウの現れる場所や、配列の先頭の色が現れる場所が決まります。先頭の色を適用する場所が決まると、他の色が配列内に格納されている順に適用されます。
実装
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 16 進数カラー値の配列です。例えば、赤は 0xFF0000、青は 0x0000FF などです。
colors
プロパティの値を直接変更することはできません。このプロパティを変更するには、colors
への参照を取得し、その参照を変更した後、colors
をその参照に設定する必要があります。
colors
、alphas
、および ratios
の 3 つのプロパティは関連しています。colors
配列の先頭のエレメントが alphas
配列と ratios
配列の先頭のエレメントに対応するなど、3 つの配列の同じインデックスのエレメントが互いに対応しています。
実装
public function get colors():Array
public function set colors(value:Array):void
例外
TypeError — 配列は、設定時に null に設定されます。
|
関連する API エレメント
distance | プロパティ |
knockout | プロパティ |
knockout:Boolean
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9 |
オブジェクトにノックアウト効果を適用するかどうかを指定します。ノックアウト効果を適用すると、オブジェクトの塗りが透明になり、ドキュメントの背景色が表示されます。true
を指定すると、ノックアウト効果が適用されます。デフォルトは false
で、ノックアウト効果は適用されません。
実装
public function get knockout():Boolean
public function set knockout(value:Boolean):void
quality | プロパティ |
quality:int
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9 |
フィルターを適用する回数。デフォルト値は、フィルターを 1 回適用することに相当する BitmapFilterQuality.LOW
です。値 BitmapFilterQuality.MEDIUM
はフィルターを 2 回適用します。値 BitmapFilterQuality.HIGH
はフィルターを 3 回適用します。フィルターに設定された値が小さいほど、速くレンダリングできます。
多くのアプリケーションでは、quality
の値は低、中、または高で十分です。最大 15 までの値を使用してさまざまな効果を出すことができますが、値が大きくなるほどレンダリング速度が低下します。quality
の値を増やす代わりに、blurX
と blurY
の値を増やすだけで、同様の効果が得られます。この方法を実行すると、より高速にレンダリングされます。
実装
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
の 3 つのプロパティは関連しています。colors
配列の先頭のエレメントが alphas
配列と ratios
配列の先頭のエレメントに対応するなど、3 つの配列の同じインデックスのエレメントが互いに対応しています。
グラデーションベベルで色の分布がどのようになるかを理解するために、まず、グラデーションベベルで使用する色を考えます。ベベルを単純化すると、ハイライト 1 色とシャドウ 1 色で構成されています。グラデーションベベルには 1 つのハイライトグラデーションと 1 つのシャドウグラデーションがあります。ハイライトを左上隅に表示し、シャドウを右下隅に表示するとします。ここでは、一例として、ハイライトに 4 色、シャドウに 4 色を使用します。ハイライトとシャドウに加え、ハイライトとシャドウのエッジが交差する部分にベース塗りの色を使用します。この場合、合計 9 色を使用するので、色分布比率の配列のエレメント数は 9 です。
グラデーションを互いに混ざり合ったさまざまな色のストライプで構成されているものと考えた場合、色分布比率の値は、その色のグラデーションの範囲内における位置を表します。この位置は、0 がグラデーションの最も外側の点を表し、255 がグラデーションの最も内側の点を表します。通常、中間値は 128 で、これがベース塗りの値になります。下のイメージのベベル効果を得るには、9 色の例を使用して色分布比率の値を次のように設定します。
- 最初の 4 色は 0 ~ 127 の範囲で、それぞれの値が前の値と等しいか、それより大きくなるように設定します。これがハイライトのベベルエッジです。
- 5 番目の色(中間色)はベース塗りで、128 に設定します。ピクセル値の 128 によりベース塗りが設定されます。このベース塗りは、type が outer に設定されている場合はシェイプの外側(およびベベルエッジの周囲)に現れ、type が inner に設定されている場合はシェイプの内側に現れてオブジェクト自体の塗りを効果的に隠します。
- 最後の 4 色は 129 ~ 255 の範囲で、それぞれの値が前の値と等しいか、それより大きくなるように設定します。これがシャドウのベベルエッジです。
各エッジの色分布を同じにする場合は、中間色がベース塗りになるように、使用する色数を奇数にします。0 ~ 127 と 129 ~ 255 の範囲で色を均等に分布した後、値を調整してグラデーションの各色のストライプの幅を変更します。9 色のグラデーションベベルの場合、[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 — 配列は、設定時に null に設定されます。
|
関連する API エレメント
strength | プロパティ |
strength:Number
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9 |
インプリントの強さまたは広がりです。値が大きいほど、濃い色がインプリントされるので、ベベルと背景との間のコントラストが強くなります。指定できる値は 0 ~ 255 です。値を 0 にすると、フィルターが適用されなくなります。デフォルト値は 1 です。
実装
public function get strength():Number
public function set strength(value:Number):void
関連する API エレメント
type | プロパティ |
type:String
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9 |
ベベル効果の配置です。指定できる値は、BitmapFilterType 定数です。
BitmapFilterType.OUTER
- ベベルがオブジェクトの外側エッジに配置されます。BitmapFilterType.INNER
- ベベルがオブジェクトの内側エッジに配置されます。BitmapFilterType.FULL
- ベベルがオブジェクトの上に配置されます。
実装
public function get type():String
public function set type(value:String):void
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 16 進数カラー値の配列です。例えば、赤は 0xFF0000、青は 0x0000FF などです。
| |
alphas:Array (default = null ) — colors 配列内の各色に対応するアルファ透明度の値の配列です。配列の各エレメントに指定できる値は、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()
メソッドを呼び出し、Sprite のgraphics
プロパティを介してアクセスする 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, 10:34 AM Z