ブレンドモードを使用すると、複合イメージを作成できます。複合とは、複数の重なるオブジェクトの透明度またはカラーインタラクションを変化させるプロセスです。ブレンドを使用すると、重なるムービークリップでカラーをブレンドして固有のエフェクトを作成できます。また、オブジェクトとイメージの透明度に関する制御も可能になります。ブレンドモードを使用することで、ハイライトやシャドウの下にあるイメージの詳細が透けて見えるようにすることや、彩度の低いイメージの彩度を上げることができます。
ブレンドモードには次のエレメントが含まれます。
ブレンドモードはブレンドを適用するオブジェクトのカラーと基になるカラーの両方に依存するので、さまざまなカラーを試して結果を確認する必要があります。目的のエフェクトを得るには、さまざまなブレンドモードを試してみてください。
Flash には、次のブレンドモードが用意されています。
メモ : 消去およびアルファブレンドモードでは、[標準] 以外のブレンドモードが親ムービークリップに適用される必要があります。
図 4 は、各種ブレンドモードがイメージの外観に与える影響を示しています。基になるイメージのカラー、および適用するブレンドモードのタイプによって、ブレンドモードのエフェクトは大きく異なるものになる可能性があります。
図 4. ブレンドモードの例
ムービークリップで、選択したムービークリップにブレンドを適用するには、プロパティインスペクタを使用します。
意図したとおりのエフェクトを得るために、ムービークリップのカラーと透明度の設定をさまざまに変更してみたり、さまざまなブレンドモードを試してみてください。ムービークリップのカラーの調整については、Flash LiveDocs の次のセクションを参照してください。[Flash ユーザーガイド]-[シンボル、インスタンス、およびライブラリアセットの使用]-[インスタンスプロパティの変更]-[インスタンスのカラーと透明度の変更]。
Flash Basic 8 でも Flash Professional 8 でも、ActionScript コードを使用してブレンドモードをインスタンスに適用できます。たとえば、次のコードを使用して、各種ブレンドモードを適用できます。
タイムラインのフレーム 1 に次の ActionScript を入力します。
createEmptyMovieClip("img_mc", 10);
var img_mcl:MovieClipLoader = new MovieClipLoader();
var mclListener:Object = new Object();
img_mcl.loadClip("http://www.helpexamples.com/flash/images/image1.jpg", img_mc);
mclListener.onLoadInit = function(img_mc:MovieClip) {
img_mc.blendMode = "difference";
};
img_mcl.addListener(mclListener);
[制御]-[ムービープレビュー] を選択してドキュメントをテストします。
各種ブレンドモードがイメージにどのように適用されるかを確認するには、次の例を使用してください。次の例は、動的なイメージをロードし、ステージ上のコンボボックスからブレンドモードを選択して、各種ブレンドモードをイメージに適用します。
タイムラインのフレーム 1 に次の ActionScript を追加します。
var blendMode_dp:Array = new Array();
blendMode_dp.push({data:"add", label:"add"});
blendMode_dp.push({data:"alpha", label:"alpha"});
blendMode_dp.push({data:"darken", label:"darken"});
blendMode_dp.push({data:"difference", label:"difference"});
blendMode_dp.push({data:"erase", label:"erase"});
blendMode_dp.push({data:"hardlight", label:"hardlight"});
blendMode_dp.push({data:"invert", label:"invert"});
blendMode_dp.push({data:"layer", label:"layer"});
blendMode_dp.push({data:"lighten", label:"lighten"});
blendMode_dp.push({data:"multiply", label:"multiply"});
blendMode_dp.push({data:"normal", label:"normal"});
blendMode_dp.push({data:"overlay", label:"overlay"});
blendMode_dp.push({data:"screen", label:"screen"});
blendMode_dp.push({data:"subtract", label:"subtract"});
blendMode_cb.dataProvider = blendMode_dp;
var mclListener:Object = new Object();
mclListener.onLoadInit = function(target_mc:MovieClip) {
var blendModeClip:MovieClip = target_mc.createEmptyMovieClip("blendModeType_mc", 20);
with (blendModeClip) {
beginFill(0x999999);
moveTo(0, 0);
lineTo(target_mc._width / 2, 0);
lineTo(target_mc._width / 2, target_mc._height);
lineTo(0, target_mc._height);
lineTo(0, 0);
endFill();
}
target_mc._x = (Stage.width - target_mc._width) / 2;
target_mc._y = (Stage.height - target_mc._height) / 2;
blendModeClip.blendMode = blendMode_cb.value;
};
createEmptyMovieClip("img_mc", 10);
var img_mcl:MovieClipLoader = new MovieClipLoader();
img_mcl.addListener(mclListener);
img_mcl.loadClip("http://www.helpexamples.com/flash/images/image1.jpg", img_mc);
function cbListener(eventObj:Object):Void {
img_mc.blendModeType_mc.blendMode = eventObj.target.value;
}
blendMode_cb.addEventListener("change", cbListener);
この ActionScript コードは、ブレンドモードの各タイプを含むコンボボックスを作成し、ユーザーが、動的にロードされたイメージ上で各ブレンドモードの効果を確認できるようにします。MovieClipLoader インスタンスで使用されるリスナーオブジェクトが作成されます。リスナーオブジェクトは、単一の onLoadInit というイベントリスナーを定義します。このリスナーは、イメージのロードが完了し、Flash で初期化されると起動します。このイベントリスナーは、blendModeType_mc という新しいムービークリップを作成し、Drawing API を使用して矩形シェイプをイメージの半分に重なるように描画します。現在コンボボックスインスタンスで選択されているブレンドモードが、blendModeType_mc ムービークリップに適用されます。
続くコードは、MovieClipLoader インスタンスが、ステージ上のムービークリップに特定のイメージをロードするように設定します。最後のコードは、コンボボックスインスタンスで新しいアイテムを選択すると、そのブレンドモードが適用されるように、blendMode_cb コンボボックスインスタンスのリスナーを定義します。