Flashドキュメンテーション |
|||
| ActionScript 2.0 リファレンスガイド > ActionScript クラス > MovieClip > 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 配列のさまざまな値に基づいて配置される色を示します。
|
|
グラデーション |
|---|---|
|
|
|
|
|
|
|
|
|
配列内の値は、[0, 63, 127, 190, 255] のように順に増やしていく必要があります。
matrix:Object - 次の 3 つの形式のいずれかの変換マトリックス。
次の例では、このタイプの matrix パラメータを指定した beginGradientFill() メソッドを使用します。
import flash.geom.*
this.createEmptyMovieClip("gradient_mc", this.getNextHighestDepth());
with (gradient_mc)
{
colors = [0xFF0000, 0x0000FF];
fillType = "radial"
alphas = [100, 100];
ratios = [0, 0xFF];
spreadMethod = "reflect";
interpolationMethod = "linearRGB";
focalPointRatio = 0.9;
matrix = new Matrix();
matrix.createGradientBox(100, 100, Math.PI, 0, 0);
beginGradientFill(fillType, colors, alphas, ratios, matrix,
spreadMethod, interpolationMethod, focalPointRatio);
moveTo(100, 100);
lineTo(100, 300);
lineTo(300, 300);
lineTo(300, 100);
lineTo(100, 100);
endFill();
}
このコードでは、画面上に次のイメージが描画されます。
a b c d e f g h i
メモ : Flash Player 8 以降の場合、Macromedia では、このリストの最初の箇条書き項目で示したように、flash.geom.Matrix オブジェクトの形式で matrix パラメータを定義することをお勧めします。
次の例では、このタイプの matrix パラメータを指定した beginGradientFill() メソッドを使用します。
this.createEmptyMovieClip("gradient_mc", this.getNextHighestDepth());
with (gradient_mc)
{
colors = [0xFF0000, 0x0000FF];
fillType = "radial"
alphas = [100, 100];
ratios = [0, 0xFF];
spreadMethod = "reflect";
interpolationMethod = "linearRGB";
focalPointRatio = 0.9;
matrix = {a:200, b:0, c:0, d:0, e:200, f:0, g:200, h:200, i:1};
beginGradientFill(fillType, colors, alphas, ratios, matrix, spreadMethod,
interpolationMethod, focalPointRatio);
moveTo(100, 100);
lineTo(100, 300);
lineTo(300, 300);
lineTo(300, 100);
lineTo(100, 100);
endFill();
}
このコードでは、画面上に次のイメージが描画されます。
各プロパティの内容は次のとおりです。matrixType はストリング "box" です。x はグラデーションの左上隅の、親クリップの基準点からの相対的な水平座標、y はグラデーションの左上隅の、親クリップの基準点からの相対的な垂直座標を示します。また、w はグラデーションの幅、h はグラデーションの高さ、r はグラデーションのラジアン単位の回転です。
メモ : Flash Player 8 以降の場合、Macromedia では、このリストの最初の箇条書き項目で示したように、flash.geom.Matrix オブジェクトの形式で matrix パラメータを定義することをお勧めします。
次の例では、このタイプの matrix パラメータを指定した beginGradientFill() メソッドを使用します。
this.createEmptyMovieClip("gradient_mc", this.getNextHighestDepth());
with (gradient_mc)
{
colors = [0xFF0000, 0x0000FF];
fillType = "radial"
alphas = [100, 100];
ratios = [0, 0xFF];
spreadMethod = "reflect";
interpolationMethod = "linearRGB";
focalPointRatio = 0.9;
matrix = {matrixType:"box", x:100, y:100, w:200, h:200, r:(45/180)*Math.PI};
beginGradientFill(fillType, colors, alphas, ratios, matrix,
spreadMethod, interpolationMethod, focalPointRatio);
moveTo(100, 100);
lineTo(100, 300);
lineTo(300, 300);
lineTo(300, 100);
lineTo(100, 100);
endFill();
}
このコードでは、画面上に次のイメージが描画されます。
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" に設定されたシンプルな線状グラデーションがあるとします。それぞれの補間方法で、外観に次のような影響があります。
|
|
|
|
|
|
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 メソッド)
RSS フィード | このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート
現在のページ: http://livedocs.adobe.com/flash/8_jp/main/00002443.html
Comments
ニックネームなし が Oct 30, 2005 の 11:29 PM に追加: