将矢量影片MC转化bitmapdata,因为中心点的问题会出现偏差
特别是转化完成后,播放位图动画的时候会出现动画部分帧抖动的误差,这是由于使用矩阵偏移像素的时候坐标并不是整数的缘故
所以暂时的解决办法是获得bounds的坐标后取整,再利用此坐标进行偏移,这样会让误差大大缩小。
/**
* 转换MovieClip为BitmapData数组
* @param mc 目标MovieClip对象
* @return
*
*/
public static function transformM2B(mc:MovieClip):Vector.<SkinInfo>
{
var result:Vector.<SkinInfo> = new Vector.<SkinInfo>();
for (var i:int = 1; i <= mc.totalFrames; i++)
{
var info:SkinInfo = new SkinInfo();
mc.gotoAndStop(i);
var bounds:Rectangle = mc.getBounds(mc);
info.centerX = int(bounds.x);
info.centerY = int(bounds.y);
info.bitmapdata = new BitmapData(bounds.width, bounds.height, true, 0);
info.bitmapdata.draw(mc, new Matrix(1, 0, 0, 1,-info.centerX,-info.centerY));
result.push(info);
}
return result;
}