Flash の [Fill and Stroke] オプションで、ライブラリのテクスチャの 1 つとして図形に色を付けることができます。例: http://i1.minus.com/iban9aRUCI7UTf.png
AS3コードでこれを行うにはどうすればよいですか?
Flash の [Fill and Stroke] オプションで、ライブラリのテクスチャの 1 つとして図形に色を付けることができます。例: http://i1.minus.com/iban9aRUCI7UTf.png
AS3コードでこれを行うにはどうすればよいですか?
Graphics
API で描画している場合は、 beginBitmapFillを使用できます。
ライブラリ内の画像のプロパティを開き、 [ActionScript] タブの [ ActionScript にエクスポート] をオンにします。「 MyTexture 」などのクラス名を付けると、次のように使用できます。
var texturedCircle:Sprite = new Sprite();
texturedCircle.graphics.beginBitmapFill(new MyTexture());
texturedCircle.graphics.drawCircle(0, 0, 100);
これには 2 つのステップでアプローチできます。
function averageColour(source:BitmapData):uint {
var red:Number = 0;
var green:Number = 0;
var blue:Number = 0;
var count:Number = 0;
var pixel:Number;
for (var x:int = 0; x < source.width; x++) {
for (var y:int = 0; y < source.height; y++) {
pixel = source.getPixel(x, y);
red += pixel >> 16 & 0xFF;
green += pixel >> 8 & 0xFF;
blue += pixel & 0xFF;
count++
}
}
red /= count;
green /= count;
blue /= count;
return red << 16 | green << 8 | blue;
}
function setColor(obj:Object, color:uint, alpha:Number = 1):void {
/* Colors the object using uint */
// Pull the individual primaries
var r:Number = (color >> 16 ) & 0xFF;
var g:Number = (color >> 8) & 0xFF;
var b:Number = color & 0xFF;
obj.transform.colorTransform = new ColorTransform(0,0,0,alpha,r,g,b,0);
}