Actionscript 3 - 在Bitmap上使用透明度绘制()

时间:2011-11-07 11:18:41

标签: flash actionscript transparency bitmapdata

我想将透明度应用于非透明徽标,然后将其添加到图像中。 所以我改变了徽标的alpha,然后在图像上绘制()徽标。 但它不起作用,透明度未按预期应用。

注意:我稍后会将生成的bitmapData保存到文件中,因此addChild()将不足以解决此问题。

var image:Bitmap;
var logo:Bitmap;
//...
logo.alpha = 0.3;
image.bitmapData.draw(logo);

1 个答案:

答案 0 :(得分:2)

试试这个:

var adjustAlpha:ColorTransform = new ColorTransform();
adjustAlpha.alphaMultiplier = 0.3
var logoArea:Rectangle = new Rectangle(0, 0, logo.width, logo.height);
logo.bitmapData.colorTransform(logoArea, adjustAlpha);
image.bitmapData.draw(logo);

当您修改位图的alpha值时,您不会修改它的实际位图数据,因此在绘制它时,您仍在复制bitmapData中找到的未修改数据。

上面的代码使用colorTransform属性来调整bitmapData中的每个像素,您可以通过更改矩形的大小来定位特定区域。

(您还需要导入ColorTransform课程。)