コメントの表示 | RSS フィード

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

パラメータ

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 メソッド)


Comments


ニックネームなし が Oct 30, 2005 の 11:29 PM に追加:
「spread メソッドに」という記載が何箇所かにありますが、「spread パラメータに」が適切ではないでしょうか。

 

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

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