Flash CS3 ドキュメンテーション |
|||
| ActionScript 2.0 リファレンスガイド > ActionScript クラス > MovieClip > blendMode (MovieClip.blendMode プロパティ) | |||
public blendMode : Object
このムービークリップのブレンドモード。ブレンドモードは、画面上の別のオブジェクトの上のレイヤー内におけるムービークリップの外観に影響します。
Flash Player は blendMode プロパティをムービークリップの各ピクセルに適用します。各ピクセルは、3 つの要素カラー (赤、緑、青) で構成されており、各要素カラーは 0x00 ~ 0xFF の値を持ちます。Flash Player は、ムービークリップの 1 つのピクセルの各要素カラーを、背景のピクセルの対応するカラーと比較します。たとえば、blendMode が "lighten" に設定されている場合、Flash Player はムービークリップの赤の値と背景の赤の値とを比較し、明るい方を表示色の赤成分として使用します。
次の表で、blendMode の設定について説明します。blendMode プロパティを設定するには、1 ~ 14 の整数またはストリングを使用できます。表の中の図は、画面上の別のオブジェクト (1) に重なった円のムービークリップ (2) に適用される blendMode の値を示しています。
|
整数値 |
ストリング値 |
図 |
説明 |
|---|---|---|---|
|
1 |
|
|
ムービークリップは、背景の前に表示されます。ムービークリップのピクセル値により、背景のピクセル値が無効になります。ムービークリップが透明な部分では、背景が表示されます。 |
|
2 |
|
|
ムービークリップを事前構成するための一時バッファの作成を強制します。この処理は、ムービークリップに子のオブジェクトが複数存在し、子の |
|
3 |
|
|
ムービークリップの要素カラーの値と背景色の値とを乗算した後、0xFF で除算して正規化して、色を暗くします。これは、シャドウや深度効果によく使用されます。 たとえば、ムービークリップ内のあるピクセルの要素カラー (たとえば赤) と背景のピクセルの対応するカラーの値がともに 0x88 である場合、乗算した結果は 0x4840 です。0xFF で除算すると、その要素カラーの値が 0x48 となり、ムービークリップや背景よりも濃い色になります。 |
|
4 |
|
|
ムービークリップの色の補数 (逆) と背景色の補数を乗算して、ブリーチ効果を得ます。この設定は、ハイライトや、ムービークリップの黒い領域の削除によく使用されます。 |
|
5 |
|
|
ムービークリップの要素カラーと背景の要素カラーのうち明るい方 (値が大きい方) を選択します。この設定は、重ね合わせタイプによく使用されます。 たとえば、ムービークリップのピクセルの 1 つの RGB 値が 0xFFCC33 で、背景のピクセルの RGB 値が 0xDDF800 の場合、表示されるピクセルの RGB 値は 0xFFF833 になります (0xFF > 0xDD、0xCC < 0xF8、および 0x33 > 0x00 のそれぞれの大きい方が採用されます)。 |
|
6 |
|
|
ムービークリップの要素カラーと背景の要素カラーのうち暗い方 (値が小さい方) を選択します。この設定は、重ね合わせタイプによく使用されます。 たとえば、ムービークリップのピクセルの 1 つの RGB 値が 0xFFCC33 で、背景のピクセルの RGB 値が 0xDDF800 の場合、表示されるピクセルの RGB 値は 0xDDCC00 になります (0xFF > 0xDD、0xCC < 0xF8、および 0x33 > 0x00 のそれぞれの小さい方が採用されます)。 |
|
7 |
|
|
ムービークリップの要素カラーと背景の要素カラーを比較し、2 つの要素カラーのうち明るい方の値から暗い方の値を差し引きます。この設定は、鮮やかな色にする場合によく使用されます。 たとえば、ムービークリップのピクセルの 1 つの RGB 値が 0xFFCC33 で、背景のピクセルの RGB 値が 0xDDF800 の場合、0xFF - 0xDD = 0x22、0xF8 - 0xCC = 0x2C、0x33 - 0x00 = 0x33 のため、表示されるピクセルの RGB 値は 0x222C33 になります。 |
|
8 |
|
|
ムービークリップの要素カラーの値を背景の要素カラーに加算し、上限 0xFF を適用します。この設定は、2 つのオブジェクト間で色を明るくするディゾルブをアニメーションにするときによく使用されます。 たとえば、ムービークリップのピクセルの 1 つの RGB 値が 0xAAA633 で、背景のピクセルの RGB 値が 0xDD2200 の場合、0xAA + 0xDD > 0xFF、0xA6 + 0x22 = 0xC8、0x33 + 0x00 = 0x33 のため、表示されるピクセルの RGB 値は 0xFFC833 になります。 |
|
9 |
|
|
結果の下限を 0 として、ムービークリップの要素カラーの値をその背景の要素カラーの値から減算します。この設定は、2 つのオブジェクト間で色を暗くするディゾルブをアニメーションにするときによく使用されます。 たとえば、ムービークリップのピクセルの 1 つの RGB 値が 0xAA2233 で、背景のピクセルの RGB 値が 0xDDA600 の場合、0xDD - 0xAA = 0x33、0xA6 - 0x22 = 0x84、0x00 - 0x33 < 0x00 のため、表示されるピクセルの RGB 値は 0x338400 になります。 |
|
10 |
|
|
背景を反転します。 |
|
11 |
|
|
ムービークリップの各ピクセルのアルファ値を背景に適用します。そのためには、 |
|
12 |
|
|
ムービークリップのアルファ値に基づいて背景を消去します。そのためには、 |
|
13 |
|
|
背景の暗さに基づいて、各ビットマップの色を調整します。背景が 50% グレーよりも明るい場合、ムービークリップと背景の色が網がけされ、明るくなります。背景が 50% グレーよりも暗い場合、2 つの色が乗算されて、より暗くなります。この設定は、シャドウ効果によく使用されます。 |
|
14 |
|
|
ムービーの暗さに応じて、各ビットマップの色を調整します。ムービークリップが 50% のグレーよりも暗い場合、ムービークリップと背景の色が網がけされ、明るくなります。ムービークリップが 50% グレーよりも暗い場合、2 つの色が乗算されて、より暗くなります。この設定は、シャドウ効果によく使用されます。 |
blendMode プロパティを他の値に設定しようとすると、プロパティは "normal" に設定されます。
ただし、このプロパティを整数に設定すると、その値は対応するストリングバージョンに直ちに変換されます。
this.createEmptyMovieClip("mclip", this.getNextHighestDepth());
mclip.blendMode = 8;
trace(mclip.blendMode) // add
対応バージョン : ActionScript 1.0、Flash Player 8
次の例では、グラデーションの塗りで 2 つのムービークリップを設定し、前景にある片方のムービークリップのブレンドモードを 1 秒ごとに変更します。効果に "alpha" ブレンドモードが現れるように、ムービークリップ mc2 のグラデーションにアルファ比の範囲が含まれ、親のムービークリップに "layer" ブレンドモードが適用されます(this.blendMode="layer")。
this.createEmptyMovieClip("mc1", this.getNextHighestDepth());
this.createEmptyMovieClip("mc2", this.getNextHighestDepth());
this.blendMode="layer";
this.createTextField("blendLabel", this.getNextHighestDepth(), 50, 150, 100, 100)
fillClip(mc1, 0x00AA00, 0x22FFFF, 100, 100)
fillClip(mc2, 0xFF0000, 0x2211FF, 100, 50)
mc2._x = 33;
mc2._y = 33;
var blendModeIndex = 0;
setInterval(changeBlendMode, 1000);
function changeBlendMode()
{
mc2.blendMode = blendModeIndex % 14 + 1 ;
// values 1 - 14
blendLabel.text = (blendModeIndex% 14 + 1) + ": " + mc2.blendMode;
blendModeIndex++;
}
function fillClip(mc:MovieClip, color1:Number, color2:Number,
alpha1:Number, alpha2: Number)
{
matrix = {a:100, b:0, c:0, d:0, e:100, f:0, g:50, h:20, i:1};
mc.beginGradientFill("linear", [color1, color2], [alpha1, alpha2], [0, 0xFF], matrix);
mc.lineStyle(8,0x888888,100)
mc.moveTo(0, 0);
mc.lineTo(0, 100);
mc.lineTo(100, 100);
mc.lineTo(100, 0);
mc.lineTo(0, 0);
mc.endFill();
}
SWF ファイルにバージョン 2 のコンポーネントがある場合は、この例で使用している MovieClip.getNextHighestDepth() メソッドの代わりに、バージョン 2 のコンポーネントの DepthManager クラスを使用します。
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート
現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00001898.html