今までそのつど書いてたけど、MovieClipの着色は回りくどくてめんどくさいので使い回しできるように関数化してみた。
0xから始まる16進数の数字を10進数で表したRGB値に変換する関数。
function hex2rgb(hex:Number):Array
{
var rgb:Array = [];
rgb[0] = hex >> 16 & 0xff;
rgb[1] = hex >> 8 & 0xff;
rgb[2] = hex & 0xff;
return rgb;
}
逆に10進数で表したRGB値を0xから始まる16進数の数字に変換する関数。
function rgb2hex(r:Object, g:Number, b:Number):Number
{
if (arguments.length == 1)
{
return (r[0] << 16 | r[1] << 8 | r[2]);
}
return (r << 16 | g << 8 | b);
}
MovieClipを指定のRGB値を格納した配列で変更する。
function setColor(mc:MovieClip, rgb:Array):Void
{
mc.transform.colorTransform = new flash.geom.ColorTransform(0, 0, 0, 1, rgb[0], rgb[1], rgb[2], 0);
}
上のsetColorで変更したMovieClipの現在のRGB値を配列で返す。
function getColor(mc:MovieClip):Array
{
var rgb:Array = [];
rgb[0] = mc.transform.colorTransform.redOffset;
rgb[1] = mc.transform.colorTransform.greenOffset;
rgb[2] = mc.transform.colorTransform.blueOffset;
return rgb;
}
で、これらをまとめたクラス→コレ