如何在actionscript中复制屏蔽位图以保持屏蔽透明度?

时间:2010-01-06 23:37:26

标签: flash actionscript-3 actionscript bitmap bitmapdata

我需要找到一种复制蒙面位图的方法。我在舞台上有一个位图,一个用户绘制的精灵充当了一个掩码。我需要捕获/复制屏蔽区域位图,保持屏蔽创建的透明度最终编码为png。

我找不到有关如何使用copyPixels()或任何其他方向完成此操作的文档。

提前感谢您的任何帮助 -

B'/ P>

1 个答案:

答案 0 :(得分:1)

我做了一个似乎有效的简单测试:

var square:Sprite = new Sprite();
var circle:Sprite = new Sprite();
var holder:Sprite = new Sprite();

square.graphics.beginFill(0,.5);
square.graphics.drawRect(0,0,100,100);
square.graphics.endFill();

circle.graphics.beginFill(0);
circle.graphics.drawCircle(0,0,50);
circle.graphics.endFill();

addChild(holder);
holder.addChild(square);
holder.addChild(circle);
square.mask = circle;

var cloneData:BitmapData = new BitmapData(holder.width,holder.height,true,0x00FFFFFF);
cloneData.draw(holder);
var clone:Bitmap = new Bitmap(cloneData);
addChild(clone);
clone.x = 30;

我正在创建一个BitmapData并使用draw()方法进行克隆。 关键的事情似乎是BitmapData构造函数中的最后两个参数。 在我传递holder.width和holder.height之后,我指定我希望bitmapData为透明(true)并且填充f ull透明白色(0x00FFFFFF) ARGB (alpha-red-green-blue)

希望这会有所帮助:)