我正在编写一个 MovieClip 光栅化器,它光栅化指定影片剪辑中的所有帧。这是光栅化的代码:
for ( var i:int = start; i <= end; i++ )
{
//goto the next frame
clip.gotoAndStop( i );
//get the bounds
bounds = clip.getBounds(clip);
//create a new bitmapdata container
bitmapData = new BitmapData(
transformer.width == -1 ? bounds.width : transformer.width,
transformer.height == -1 ? bounds.height : transformer.height,
transformer.transparent,
transformer.color
);
if (transformer.matrix.tx == 0 && transformer.matrix.ty == 0) transformer.translateToZero( bounds );
//draw the bitmap data with the transformers
bitmapData.draw(
this._source,
transformer.matrix,
transformer.colorTransform,
transformer.blendMode,
transformer.clipRect, //new Rectangle(0, 0, bounds.width, bounds.height),
transformer.smoothing
);
//push the data on the array
frames.push( bitmapData );
}
现在结果不同了 - http://i42.tinypic.com/lfv52.jpg - 黑色的是光栅化版本(我使用了颜色变换来测试它:P)。注意头部和左鞋。任何人都知道问题是什么?我见过人们在 BitmapData 构造函数中向边界框添加“额外”像素,但这是正确的解决方案。
有人知道如何很好地融入角色吗?