我需要将舞台上的MovieClip变成Bitmap。我为这个中途所做的功能;它确实使用正确的图像从MovieClip创建一个Bitmap,但它不会旋转它。
这是函数
function makeBitmapData(mov):BitmapData
{
var bmpData:BitmapData = new BitmapData(mov.width, mov.height, true, 0);
bmpData.draw(mov);
this.addChild(new Bitmap(bmpData)); //Shows the bitmap on screen purely for example
return bmpData;
}
这是输出
我应该如何旋转位图,或者只是纯粹复制该位图中的所有像素,旋转所有像素?
答案 0 :(得分:0)
您检查过rotate()
函数和fl.motion.MatrixTransformer
类吗? this问题也很有用。
答案 1 :(得分:0)
在实现代码的函数中。
var b:Bitmap = new Bitmap ( makeBitmapData(mov) );
addChild(b);
b.rotation = mov.rotation;
答案 2 :(得分:0)
实现此目的的一种方法是从父项中绘制,这样任何转换/过滤器都将反映在捕获的位图数据中。所以像这样:
function makeBitmapData(mov:DisplayObject):BitmapData
{
var rect:Rectangle = mov.getBounds(mov.parent); //get the bounds of the item relative to it's parent
var bmpData:BitmapData = new BitmapData(rect.width, rect.height, false, 0xFF0000);
//you have to pass a matrix so you only draw the part of the parent that contains the child.
bmpData.draw(mov.parent, new Matrix(1,0,0,1,-rect.x,-rect.y));
addChild(new Bitmap(bmpData)); //Shows the bitmap on screen purely for example
return bmpData;
}