colorTransformは、すべての子やフィルタを含むムービークリップ全体に適用されます。あなたがドロップシャドウを試してみると、私の言いたいことが分かります。
メソッド#1: ベベルフィルタを使用して親オブジェクトを作成し、ムービークリップをcolorTransformでアタッチできます。
var parentObject:Sprite = new Sprite();
addChild(parentObject);
var mc:Sprite = new Sprite();
mc.graphics.beginFill(0xFFFF00);
mc.graphics.drawCircle(100,100, 100);
mc.graphics.endFill();
var blue:ColorTransform = new ColorTransform();
blue.color = 0xFF00B8;
var myBevel:BevelFilter = new BevelFilter();
myBevel.type = BitmapFilterType.INNER;
myBevel.distance = 3;
myBevel.highlightColor = 0xFFFFFF;
myBevel.shadowColor = 0x000000;
myBevel.blurX = 5;
myBevel.blurY = 5;
parentObject.filters = [myBevel];
parentObject.addChild(mc);
mc.transform.colorTransform = blue;
方法#2: ベベルを処理するために、親オブジェクトを避けるために、私はあなたが探しているものを達成するためのAdjustColorで2 ColorMatrixFiltersを使用。 3つのフィルタ、1つはオブジェクトを白に、もう1つは必要な色に、もう1つは最後のベベルフィルタになります。 FlexまたはFlashDevelopのようなFlash以外のIDEを使用している場合は、fl.motion.AdjustColorパッケージの「Common/Configuration/ActionScript 3.0/libs/flash.swc」からライブラリにflash.swcをインクルードする必要があります。クラス。
var mc:Sprite = new Sprite();
mc.graphics.beginFill(0xFF0000);
mc.graphics.drawCircle(100, 100, 100);
mc.graphics.endFill();
addChild(mc);
// White out the entire shape first
var whiteAC:AdjustColor = new AdjustColor();
whiteAC.brightness = 100;
whiteAC.contrast = 100;
whiteAC.saturation = -100;
whiteAC.hue = 0;
var whiteMatrix:Array = whiteAC.CalculateFinalFlatArray();
var whiteCMF:ColorMatrixFilter = new ColorMatrixFilter(whiteMatrix);
// Now use ColorMatrixFilter to change color
var colorMatrix:Array = hexToMatrix(0x0000FF);
var colorCMF:ColorMatrixFilter = new ColorMatrixFilter(colorMatrix);
// Create bevel
var myBevel:BevelFilter = new BevelFilter();
myBevel.type = BitmapFilterType.INNER;
myBevel.distance = 3;
myBevel.highlightColor = 0xFFFFFF;
myBevel.shadowColor = 0x000000;
myBevel.blurX = 5;
myBevel.blurY = 5;
mc.filters = [whiteCMF, colorCMF, myBevel];
function hexToMatrix (hex:uint, alpha:Number = 1)
{
var r:Number = ((hex & 0xFF0000) >> 16);
var g:Number = ((hex & 0x00FF00) >> 8);
var b:Number = ((hex & 0x0000FF));
var matrix:Array = [];
matrix = matrix.concat([r, 0, 0, 0, 0]); // red
matrix = matrix.concat([0, g, 0, 0, 0]); // green
matrix = matrix.concat([0, 0, b, 0, 0]); // blue
matrix = matrix.concat([0, 0, 0, alpha, 0]); // alpha
return matrix;
}
しかし、私はparentObjectを持っていません。私は色を変更し、斜角を追加するだけの1つの形(カスタム)です。 – bmbl87
あなたが言ったように変更しようとしましたが、まだ動作しません。 – bmbl87
私はちょうどあなたのコードでもエラーをキャッチしました。色は有効な色ではありません。最後のE7を取り除く。 0xFF00B8 :) –