ムービークリップの色を変更するためのクラス。
変更するためには、「Transformクラス」のインポートも必要。
とりあえず、実験。
ライブラリに50x50で真っ白なMC「box」(識別子:box)を用意。
タイムライン弟1フレームに下記のコードを記述。
//クラスをインポート
import flash.geom.ColorTransform;
import flash.geom.Transform;
var box:MovieClip=this.attachMovie("box","box",this.getNextHighestDepth());
//ターゲットになるMCをセットして、Transformインスタンスを生成
var trans:Transform=new Transform(box);
//カラーを設定して、ColorTransFormインスタンスを生成
var red:ColorTransform=new ColorTransform(1,1,1,1,255,-255,-255,255);
//transインスタンスのcolorTransformプロパティにColorTransFormインスタンスをセット
trans.colorTransform=red;
結構面倒くさい。以下がコンストラクタ。
ColorTransform コンストラクタ
public ColorTransform([redMultiplier:Number], [greenMultiplier:Number], [blueMultiplier:Number], [alphaMultiplier:Number], [redOffset:Number], [greenOffset:Number], [blueOffset:Number], [alphaOffset:Number])
指定されたカラーチャンネル値とアルファ値を持つ ColorTransform オブジェクトを作成します。
使用できるバージョン
ActionScript 1.0、Flash Player 8
パラメータ
redMultiplier:Number (オプション)
赤の乗数の値 (-1 ~ 1)。デフォルト値は 1です。
greenMultiplier:Number (オプション)
緑の乗数の値 (-1 ~ 1)。デフォルト値は 1です。
blueMultiplier:Number (オプション)
青の乗数の値 (-1 ~ 1)。デフォルト値は 1です。
alphaMultiplier:Number (オプション)
アルファ透明度の乗数の値 (-1 ~ 1)。デフォルト値は 1です。
redOffset:Number (オプション)
赤のカラーチャンネル値のオフセット (-255 ~ 255)。デフォルト値は 0 です。
greenOffset:Number (オプション)
緑のカラーチャンネル値のオフセット (-255 ~ 255)。デフォルト値は 0 です。
blueOffset:Number (オプション)
青のカラーチャンネル値のオフセット (-255 ~ 255)。デフォルト値は 0 です。
alphaOffset:Number (オプション)
アルファ透明度のカラーチャンネル値のオフセット (-255 ~ 255)。デフォルト値は 0 です。
で、 こんなのつくってみた。
画面サイズは、320x320。
20x20のMC「box(リンケージ識別子:box)」を用意。
以下、コード。
//クラスをインポート
import flash.geom.ColorTransform;
import flash.geom.Transform;
var redOffset:Number=0;
var greenOffset:Number=-255;
var blueOffset:Number=-255;
for(var i:Number=0;i<16;i++){
for(var j:Number=0;j<16;j++){
var syoki:Object={_x:20*j,_y:20*i};
var box:MovieClip=this.attachMovie("box","box"+redOffset,this.getNextHighestDepth(),syoki);
var trans:Transform=new Transform(box);
var red:ColorTransform=new ColorTransform(1,1,1,1,redOffset,greenOffset,blueOffset,0);
trans.colorTransform=red;
//オフセット値を変更
redOffset+=1;
greenOffset+=1;
}
}

コメントする