beginGradientFill (MovieClip.beginGradientFill メソッド)

public beginGradientFill(fillType: String , colors: Array , alphas: Array , ratios: Array , matrix: Object , [spreadMethod: String ], [interpolationMethod: String ], [focalPointRatio: Number ]) : Void

新しい描画パスの始点を示します。最初のパラメータが undefined, であるか、いずれのパラメータも渡されない場合は、パスに関連する塗りがありません。開いたパスがある場合 (現在の描画位置が MovieClip.moveTo() メソッドで指定された前の座標と等しくない場合) で、パスに関連する塗りがあるときは、そのパスが線で閉じられた後で塗りが適用されます。この動作は MovieClip.endFill() メソッドを呼び出したときと似ています。

このメソッドは、次のいずれかの条件が存在する場合は失敗します。

サブクラスを作成することにより、MovieClip クラスのメソッドおよびイベントハンドラを拡張できます。

対応バージョン : ActionScript 1.0、Flash Player 6 - spreadMethod、interpolationMethod、および focalPointRatio の各パラメータが Flash Player 8 で追加されました。

パラメータ

fillType:String - "linear" または "radial" のいずれかのストリングを指定できます。

colors:Array - グラデーションで使用できる RGB 16 進カラー値の配列 (赤 0xFF0000、青 0x0000FF など)。最大 15 色まで指定できます。各色について、alphas パラメータと ratios パラメータで対応する値を必ず指定してください。

alphas:Array - colors 配列内の各色に対応するアルファ値の配列。有効な値は 0 ~ 100 です。0 未満の値の場合は 0 が、100 を超える値の場合は 100 が適用されます。

ratios:Array - 色分布の比率の配列。有効な値は 0 ~ 255 です。この値は、100% でサンプリングされる色の幅の割合をパーセントで定義します。colors パラメータの値ごとに、値を指定してください。

たとえば、青と緑の 2 色を含む線状グラデーションの場合、次の図は、ratios 配列のさまざまな値に基づいて、グラデーションで配置される色を示します。

ratios

グラデーション

[0, 127]



[0, 255]



[127, 255]



配列内の値は、[0, 63, 127, 190, 255] のように順に増やしていく必要があります。

matrix:Object - 次の 3 つの形式のいずれかの変換マトリックス。

spreadMethod:String (オプション) - Flash Player 8 で追加されました。"pad"、"reflect"、"repeat" のいずれかで、グラデーションの塗りのモードを調整します。デフォルト値は "pad" です。

たとえば、2 つの色の間にシンプルな線状グラデーションがあるとします。

import flash.geom.*;
var fillType:String = "linear"
var colors:Array = [0xFF0000, 0x0000FF];
var alphas:Array = [100, 100];
var ratios:Array = [0x00, 0xFF];
var matrix:Matrix = new Matrix();
matrix.createGradientBox(20, 20, 0, 0, 0);
var spreadMethod:String = "pad";
this.beginGradientFill(fillType, colors, alphas, ratios, matrix, spreadMethod); 
this.moveTo(0, 0);
this.lineTo(0, 100);
this.lineTo(100, 100);
this.lineTo(100, 0);
this.lineTo(0, 0);
this.endFill();

この例では spread メソッドに "pad" を使用しているため、グラデーションの塗りは次のようになります。



spread メソッドに "reflect" を使用する場合、グラデーションの塗りは次のようになります。



spread メソッドに "repeat" を使用する場合、グラデーションの塗りは次のようになります。



interpolationMethod:String (オプション) - Flash Player 8 で追加されました。"RGB" または "linearRGB" のいずれかです。"linearRGB" では、グラデーションカラーは線状に散布されます。デフォルト値は "RGB" です。

たとえば、2 つの色の間に、spreadMethod パラメータが "reflect" に設定されたシンプルな線状グラデーションがあるとします。それぞれの補間方法で、外観に次のような影響があります。





"linearRGB"

"RGB"

focalPointRatio:Number (オプション) - Flash Player 8 で追加されました。グラデーションの焦点の位置を調整する数値です。0 は焦点が中央にあること、1 は焦点がグラデーション円の一方の境界にあること、-1 は焦点がグラデーション円のもう一方の境界にあることを示します。-1 未満または 1 より大きい値は、-1 または 1 に丸められます。たとえば、次のイメージでは、focalPointRatio が 0.75 に設定されています。



次のコードでは、球状の陰影の効果を作成します。

import flash.geom.*
this.createEmptyMovieClip("gradient_mc", this.getNextHighestDepth());
with (gradient_mc) 
    {
        fillType = "radial"
    colors = [0x000000, 0xFFFFFF];
        alphas = [50, 90];
        ratios = [0, 0xFF];
        spreadMethod = "pad";
        interpolationMethod = "RGB";
    focalPointRatio = 0.3;
    matrix = new Matrix();
    matrix.createGradientBox(100, 100, 0, 0, 0);
    beginGradientFill(fillType, colors, alphas, ratios, matrix, 
        spreadMethod, interpolationMethod, focalPointRatio);
    moveTo(0, 0);
    lineTo(0, 100);
    lineTo(100, 100);
    lineTo(100, 0);
    lineTo(0, 0);
    endFill();
}

次のように描画されます。このイメージは 50% 縮小されています。



SWF ファイルにバージョン 2 のコンポーネントがある場合は、この例で使用している MovieClip.getNextHighestDepth() メソッドではなく、バージョン 2 コンポーネントの DepthManager クラスを使用します。

関連項目

createGradientBox (Matrix.createGradientBox メソッド), beginFill (MovieClip.beginFill メソッド), endFill (MovieClip.endFill メソッド), lineStyle (MovieClip.lineStyle メソッド), lineTo (MovieClip.lineTo メソッド), moveTo (MovieClip.moveTo メソッド)


 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00001897.html