我的sprite
包含重叠的shape
。精灵本身将其alpha设置为.5,因此我必须将精灵的blendmode
设置为“图层”,以防止重叠部分彼此透明。在从here获取的截图中,它应该看起来像右边的那个。
现在我想从我的精灵中draw
bitmapData
,但我无法将生成的位图看作右边的图像。它最终看起来像中间的图像。
spriteBMD.draw(mySprite,null,mySprite.transform.colorTransform,"layer");
有谁知道我做错了什么?
答案 0 :(得分:1)
我对根本原因有一些想法,但无论如何它在这里如何运作:
import flash.display.BitmapData;
import flash.display.BlendMode;
import flash.display.Bitmap;
import flash.geom.ColorTransform;
var bmd:BitmapData = new BitmapData(mc.width, mc.height);
var bitmap:Bitmap = new Bitmap(bmd);
var sourceTransform:ColorTransform = mc.transform.colorTransform;
var bmdTransfrom:ColorTransform;
if(mc.blendMode == BlendMode.NORMAL)
{
bmdTransfrom = sourceTransform;
}else
{
bitmap.transform.colorTransform = sourceTransform;
}
bmd.draw(mc, null, bmdTransfrom, mc.blendMode);
addChild(bitmap);