ムービークリップを着色する
サンプルをダウンロード
■ムービークリップを着色する(Color クラス)(Flash 7 以前)
1.カラーオブジェクトを作成する
new 演算子を使って、Color クラスをインスタンス化します。
引数に、着色したいムービークリップを指定します。
ムービークリップ _root.mc の色を制御する、カラーオブジェクトを作成する
// カラーオブジェクトを作成する
var color_obj = new Color(_root.mc);
2.単一のカラーで着色する
単一のカラーで着色するには、 setRGB() メソッドを使用します。
引数に、RGB カラー (0xFFFFFF) を指定します。
設定例です。
ムービークリップ _root.mc を、赤色(FF0000)で塗りつぶす
// カラーオブジェクトを作成する
var color_obj = new Color(_root.mc);
// 単一のカラーで着色する
color_obj.setRGB( 0xFF0000 );
ムービークリップ _root.mc を、赤:255 緑:128 青:0 で塗りつぶす
// カラーオブジェクトを作成する
var color_obj = new Color(_root.mc);
var red = 255; // 赤色成分
var green = 128; // 緑色成分
var blue = 0; // 青色成分
// カラーを論理演算で合成
var color = (red << 16) | (green << 8) | (blue);
// 単一のカラーで着色する
color_obj.setRGB( color );
3.着色したカラーを元に戻す
着色したカラーを元に戻すには、 setTransform() メソッドを使用します。
以下のように、デフォルトのパラメータをセットします。
ムービークリップ _root.mc に着色したカラーを元に戻す
// カラーオブジェクトを作成する
var color_obj = new Color(_root.mc);
// 単一のカラーで着色する
color_obj.setRGB( 0xFF0000 );
// 着色したカラーを元に戻す
color_obj.setTransform({ ra:100, ga:100, ba:100, aa:100, rb:0, gb:0, bb:0, ab:0 });
■ムービークリップを着色する(ColorTransform クラス)(Flash 8 以降)
1.カラートランスフォームオブジェクトを作成する
new 演算子を使って、ColorTransform クラスをインスタンス化します。
カラートランスフォームオブジェクトを作成する(AS1.0)
// カラートランスフォームオブジェクトを作成する
var color_transform = new flash.geom.ColorTransform();
カラートランスフォームオブジェクトを作成する(AS2.0)
import flash.geom.ColorTransform;
// カラートランスフォームオブジェクトを作成する
var color_transform : ColorTransform = new ColorTransform();
2.単一のカラーで着色する
単一のカラーで着色するには、 rgb プロパティを使用します。
RGB カラー (0xFFFFFF) をセットします。
設定例です。
カラートランスフォームオブジェクトを作成する(AS1.0)
// カラートランスフォームオブジェクトを作成する
var color_transform = new flash.geom.ColorTransform();
// RGB カラーをセットする
color_transform.rgb = 0xFF8800;
カラートランスフォームオブジェクトを作成する(AS2.0)
import flash.geom.ColorTransform;
// カラートランスフォームオブジェクトを作成する
var color_transform : ColorTransform = new ColorTransform();
// RGB カラーをセットする
color_transform.rgb = 0xFF8800;
3.ムービークリップにカラーを適用する
ムービークリップにカラーを適用するには、 transform.colorTransform プロパティを使用します。
このプロパティに、カラートランスフォームオブジェクトを渡します。
ムービークリップ "mc" にカラーを適用する(AS1.0)
// カラートランスフォームオブジェクトを作成する
var color_transform = new flash.geom.ColorTransform();
// RGB カラーをセットする
color_transform.rgb = 0xFF8800;
// ムービークリップ "mc" に、カラートランスフォームオブジェクトを渡す
mc.transform.colorTransform = color_transform;
ムービークリップ "mc" にカラーを適用する(AS2.0)
import flash.geom.ColorTransform;
// カラートランスフォームオブジェクトを作成する
var color_transform : ColorTransform = new ColorTransform();
// RGB カラーをセットする
color_transform.rgb = 0xFF8800;
// ムービークリップ "mc" に、カラートランスフォームオブジェクトを渡す
mc.transform.colorTransform = color_transform;
ムービークリップに詳細な色を設定する
サンプルをダウンロード
■ムービークリップに詳細な色を設定する(Color クラス)(Flash 7 以前)
1.カラーオブジェクトを作成する
new 演算子を使って、Color クラスをインスタンス化します。
引数に、着色したいムービークリップを指定します。
ムービークリップ _root.mc の色を制御する、カラーオブジェクトを作成する
// カラーオブジェクトを作成する
var color_obj = new Color(_root.mc);
2.カラートランスフォーム用のオブジェクトを用意する
new 演算子を使って、Object クラスをインスタンス化します。
以下のプロパティを追加して、必要なパラメータをセットします。
プロパティ名 | 型 | 効果 |
ra | Number | 赤色の乗算成分 (倍率をパーセントで指定) デフォルトは 100 |
ga | Number | 緑色の乗算成分 (倍率をパーセントで指定) デフォルトは 100 |
ba | Number | 青色の乗算成分 (倍率をパーセントで指定) デフォルトは 100 |
aa | Number | 透過色の乗算成分 (倍率をパーセントで指定) デフォルトは 100 |
rb | Number | 赤色の加算成分 (-255 ~ 255 の値を指定) デフォルトは 0 |
gb | Number | 緑色の加算成分 (-255 ~ 255 の値を指定) デフォルトは 0 |
bb | Number | 青色の加算成分 (-255 ~ 255 の値を指定) デフォルトは 0 |
ab | Number | 透過色の加算成分 (-255 ~ 255 の値を指定) デフォルトは 0 |
このパラメータは、『詳細』カラー設定の、以下の部分に相当します。
カラートランスフォームは、以下の計算が行われます。
この計算は、1ピクセルごとに行われ、全ピクセルが変換されます。
カラートランスフォームの変換式
新しい赤色 = (元の赤色 * ra / 100) + rb;
新しい緑色 = (元の緑色 * ga / 100) + gb;
新しい青色 = (元の青色 * ba / 100) + bb;
新しい透過色 = (元の透過色 * aa / 100) + ab;
色を元に戻したい場合に使用する、デフォルト値の例です。
デフォルト値のオブジェクトを作成
// カラートランスフォーム用オブジェクトを作成
var color_transform = new Object();
color_transform.ra = 100;
color_transform.ga = 100;
color_transform.ba = 100;
color_transform.aa = 100;
color_transform.rb = 0;
color_transform.gb = 0;
color_transform.bb = 0;
color_transform.ab = 0;
「RGB カラー」と「濃淡」を指定して、着色する例です。
「RGB カラー」と「濃淡」指定で着色する
// RGB カラー(0xFFFFFF)を指定
var color_rgb = 0xFF8800;
// 濃淡 (0 ~ 100)
var shade = 50;
// カラートランスフォーム用オブジェクトを作成
var color_transform = new Object();
color_transform.ra = 100 - shade;
color_transform.ga = 100 - shade;
color_transform.ba = 100 - shade;
color_transform.aa = 100;
color_transform.rb = ((color_rgb >> 16) & 0xFF) * shade / 100;
color_transform.gb = ((color_rgb >> 8) & 0xFF) * shade / 100;
color_transform.bb = ((color_rgb >> 0) & 0xFF) * shade / 100;
color_transform.ab = 0;
明度を変更する例です。
明度を変更する
// 明度 (-100 ~ 100)
var lightness = 50;
// カラートランスフォーム用オブジェクトを作成
var color_transform = new Object();
color_transform.aa = 100;
color_transform.ab = 0;
if(lightness < 0){
color_transform.ra = 100 + lightness;
color_transform.ga = 100 + lightness;
color_transform.ba = 100 + lightness;
color_transform.rb = 0;
color_transform.gb = 0;
color_transform.bb = 0;
}else{
color_transform.ra = 100 - lightness;
color_transform.ga = 100 - lightness;
color_transform.ba = 100 - lightness;
color_transform.rb = 255 * lightness / 100;
color_transform.gb = 255 * lightness / 100;
color_transform.bb = 255 * lightness / 100;
}
ネガポジ反転する例です。
ネガポジ反転する
// カラートランスフォーム用オブジェクトを作成
var color_transform = { ra:-100, ga:-100, ba:-100, aa:100, rb:255, gb:255, bb:255, ab:0 };
3.ムービークリップにカラートランスフォームを適用する
ムービークリップにカラートランスフォームを適用するには、setTransform() メソッドを使用します。
引数に、「カラートランスフォーム用のオブジェクト」を渡します。
ムービークリップ _root.mc にカラートランスフォームを適用する
// カラーオブジェクトを作成する
var color_obj = new Color(_root.mc);
// ------------------------------------------------------------
// カラートランスフォーム用オブジェクトを作成
// ------------------------------------------------------------
var color_transform = new Object();
color_transform.ra = 50;
color_transform.ga = 100;
color_transform.ba = 50;
color_transform.aa = 100;
color_transform.rb = 0;
color_transform.gb = 0;
color_transform.bb = 0;
color_transform.ab = 0;
// ------------------------------------------------------------
// カラートランスフォームを適用
// ------------------------------------------------------------
color_obj.setTransform(color_transform);
■ムービークリップに詳細な色を設定する(ColorTransform クラス)(Flash 8 以降)
1.カラートランスフォームオブジェクトを作成する
new 演算子を使って、ColorTransform クラスをインスタンス化します。
ここでは、引数の説明は省略します。
new ColorTransform ( redMultiplier , blueMultiplier , greenMultiplier , alphaMultiplier , redOffset , greenOffset , blueOffset , alphaOffset ) :ColorTransform
第01引数(略可) | Number | redMultiplier プロパティに相当 |
第02引数(略可) | Number | greenMultiplier プロパティに相当 |
第03引数(略可) | Number | blueMultiplier プロパティに相当 |
第04引数(略可) | Number | alphaMultiplier プロパティに相当 |
第05引数(略可) | Number | redOffset プロパティに相当 |
第06引数(略可) | Number | greenOffset プロパティに相当 |
第07引数(略可) | Number | blueOffset プロパティに相当 |
第08引数(略可) | Number | alphaOffset プロパティに相当 |
戻り値 | ColorTransform | ColorTransform オブジェクト |
カラートランスフォームオブジェクトを作成する(AS1.0)
// カラートランスフォームオブジェクトを作成する
var color_transform = new flash.geom.ColorTransform();
カラートランスフォームオブジェクトを作成する(AS2.0)
import flash.geom.ColorTransform;
// カラートランスフォームオブジェクトを作成する
var color_transform : ColorTransform = new ColorTransform();
2.ColorTransform オブジェクトの各プロパティを設定する
ColorTransform オブジェクトには、以下のプロパティがあります。
プロパティ名 | 型 | 効果 |
redMultiplier | Number | 赤色の乗算成分 (倍率を指定) デフォルトは 1.0 |
blueMultiplier | Number | 緑色の乗算成分 (倍率を指定) デフォルトは 1.0 |
greenMultiplier | Number | 青色の乗算成分 (倍率を指定) デフォルトは 1.0 |
alphaMultiplier | Number | 透過色の乗算成分 (倍率を指定) デフォルトは 1.0 |
redOffset | Number | 赤色の加算成分 (-255 ~ 255 の値を指定) デフォルトは 0 |
greenOffset | Number | 緑色の加算成分 (-255 ~ 255 の値を指定) デフォルトは 0 |
blueOffset | Number | 青色の加算成分 (-255 ~ 255 の値を指定) デフォルトは 0 |
alphaOffset | Number | 透過色の加算成分 (-255 ~ 255 の値を指定) デフォルトは 0 |
このパラメータは、『詳細』カラー設定の、以下の部分に相当します。
カラートランスフォームは、以下の計算が行われます。
この計算は、1ピクセルごとに行われ、全ピクセルが変換されます。
カラートランスフォームの変換式
新しい赤色 = (元の赤色 * redMultiplier) + redOffset;
新しい緑色 = (元の緑色 * greenMultiplier) + greenOffset;
新しい青色 = (元の青色 * blueMultiplier) + blueOffset;
新しい透過色 = (元の透過色 * alphaMultiplier) + alphaOffset;
「RGB カラー」と「濃淡」を指定して、着色する例です。
「RGB カラー」と「濃淡」指定で着色する(AS1.0)
// RGB カラー(0xFFFFFF)を指定
var color_rgb = 0xFF8800;
// 濃淡 (0.0 ~ 1.0)
var shade = 0.5;
// カラートランスフォームオブジェクトを作成
var color_transform = new flash.geom.ColorTransform();
color_transform.redMultiplier = 1.0 - shade;
color_transform.greenMultiplier = 1.0 - shade;
color_transform.blueMultiplier = 1.0 - shade;
color_transform.redOffset = ((color_rgb >> 16) & 0xFF) * shade;
color_transform.greenOffset = ((color_rgb >> 8) & 0xFF) * shade;
color_transform.blueOffset = ((color_rgb >> 0) & 0xFF) * shade;
「RGB カラー」と「濃淡」指定で着色する(AS2.0)
import flash.geom.ColorTransform;
// RGB カラー(0xFFFFFF)を指定
var color_rgb:Number = 0xFF8800;
// 濃淡 (0.0 ~ 1.0)
var shade:Number = 0.5;
// カラートランスフォームオブジェクトを作成
var color_transform : ColorTransform = new ColorTransform();
color_transform.redMultiplier = 1.0 - shade;
color_transform.greenMultiplier = 1.0 - shade;
color_transform.blueMultiplier = 1.0 - shade;
color_transform.redOffset = ((color_rgb >> 16) & 0xFF) * shade;
color_transform.greenOffset = ((color_rgb >> 8) & 0xFF) * shade;
color_transform.blueOffset = ((color_rgb >> 0) & 0xFF) * shade;
明度を変更する例です。
明度を変更する(AS1.0)
// 明度 (-1.0 ~ 1.0)
var lightness = 0.5;
// カラートランスフォームオブジェクトを作成
var color_transform = new flash.geom.ColorTransform();
if(lightness < 0){
color_transform.redMultiplier = 1.0 + lightness;
color_transform.greenMultiplier = 1.0 + lightness;
color_transform.blueMultiplier = 1.0 + lightness;
color_transform.redOffset = 0;
color_transform.greenOffset = 0;
color_transform.blueOffset = 0;
}else{
color_transform.redMultiplier = 1.0 - lightness;
color_transform.greenMultiplier = 1.0 - lightness;
color_transform.blueMultiplier = 1.0 - lightness;
color_transform.redOffset = 255 * lightness;
color_transform.greenOffset = 255 * lightness;
color_transform.blueOffset = 255 * lightness;
}
明度を変更する(AS2.0)
import flash.geom.ColorTransform;
// 明度 (-1.0 ~ 1.0)
var lightness:Number = 0.5;
// カラートランスフォームオブジェクトを作成
var color_transform : ColorTransform = new ColorTransform();
if(lightness < 0){
color_transform.redMultiplier = 1.0 + lightness;
color_transform.greenMultiplier = 1.0 + lightness;
color_transform.blueMultiplier = 1.0 + lightness;
color_transform.redOffset = 0;
color_transform.greenOffset = 0;
color_transform.blueOffset = 0;
}else{
color_transform.redMultiplier = 1.0 - lightness;
color_transform.greenMultiplier = 1.0 - lightness;
color_transform.blueMultiplier = 1.0 - lightness;
color_transform.redOffset = 255 * lightness;
color_transform.greenOffset = 255 * lightness;
color_transform.blueOffset = 255 * lightness;
}
ネガポジ反転する例です。
ネガポジ反転する(AS1.0)
// カラートランスフォームオブジェクトを作成
var color_transform = new flash.geom.ColorTransform(-1.0,-1.0,-1.0,1.0,255,255,255,0);
ネガポジ反転する(AS2.0)
import flash.geom.ColorTransform;
// カラートランスフォームオブジェクトを作成
var color_transform : ColorTransform = new ColorTransform(-1.0,-1.0,-1.0,1.0,255,255,255,0);
3.ムービークリップにカラーを適用する
ムービークリップにカラーを適用するには、 transform.colorTransform プロパティを使用します。
このプロパティに、カラートランスフォームオブジェクトを渡します。
ムービークリップ "mc" にカラーを適用する(AS1.0)
// ------------------------------------------------------------
// カラートランスフォーム
// ------------------------------------------------------------
// カラートランスフォームオブジェクトを作成する
var color_transform = new flash.geom.ColorTransform();
// カラートランスフォームを設定する
color_transform.redMultiplier = 0.5;
color_transform.greenMultiplier = 1.0;
color_transform.blueMultiplier = 0.5;
color_transform.alphaMultiplier = 1.0;
color_transform.redOffset = 0;
color_transform.greenOffset = 0;
color_transform.blueOffset = 0;
color_transform.alphaOffset = 0;
// ------------------------------------------------------------
// カラーを適用
// ------------------------------------------------------------
// ムービークリップ "mc" に、カラートランスフォームオブジェクトを渡す
mc.transform.colorTransform = color_transform;
ムービークリップ "mc" にカラーを適用する(AS2.0)
import flash.geom.ColorTransform;
// ------------------------------------------------------------
// カラートランスフォーム
// ------------------------------------------------------------
// カラートランスフォームオブジェクトを作成する
var color_transform : ColorTransform = new ColorTransform();
// カラートランスフォームを設定する
color_transform.redMultiplier = 0.5;
color_transform.greenMultiplier = 1.0;
color_transform.blueMultiplier = 0.5;
color_transform.alphaMultiplier = 1.0;
color_transform.redOffset = 0;
color_transform.greenOffset = 0;
color_transform.blueOffset = 0;
color_transform.alphaOffset = 0;
// ------------------------------------------------------------
// カラーを適用
// ------------------------------------------------------------
// ムービークリップ "mc" に、カラートランスフォームオブジェクトを渡す
mc.transform.colorTransform = color_transform;
カラーマトリックスフィルタを使用する(Flash 8 以降)
サンプルをダウンロード