BitmapData截止

时间:2010-03-13 19:38:33

标签: actionscript-3 bitmapdata rasterizing

我正在编写一个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构造函数的边界框中添加了“额外”像素,但这是正确的解决方案。

任何人都知道如何很好地融入角色?

1 个答案:

答案 0 :(得分:0)

您没有说明 transformer.translateToZero()的内容,但是,您确定该字符始终与(0,0)对齐吗?

我的意思是,如果您希望它复制整个 MovieClip ,您应该将 bounds 作为 BitmapData.draw()的clipRect 参数传递