2

我有一个正在缩小的显示对象(不是图像)。它具有与图像缩放时相同的锯齿和锯齿边缘。有没有办法像平滑图像一样平滑显示对象?

更新
这是一个带有交互式子显示对象的交互式显示对象(精灵)。我无法将其绘制为位图。

4

5 回答 5

5

您可以尝试通过向其添加 Matrix3D 变换来强制显示对象进入“3d”模式。最简单的方法是简单地给它一个 rotationX 值:

myDisplayObject.rotationX = 0.0; 
于 2012-08-13T17:12:36.570 回答
2

您还可以尝试检查形状上的“提示”框(有时这会使圆形和椭圆形变得有点奇怪,所以这是一场赌博),您可以尝试从渲染下拉列表中选择“缓存为位图”。

于 2012-08-14T02:22:33.760 回答
2

使用 Pixel Blender 对精灵进行双三次重采样?

http://blog.onthewings.net/2009/08/25/bicubic-resampling-by-pixel-bender/

于 2012-08-14T17:32:26.053 回答
1

您可以尝试将位图对象的平滑属性设置为 true,然后对其进行缩放:

看这里

你的Display对象必须包含一个Bitmap,或者是Bitmap本身...

于 2012-08-13T14:32:31.980 回答
1

你试过设置stage.quality = stageQuality.High;吗?此外,如果您这样做并且想要手动设置平滑,您可以尝试Lanczos 重新采样功能(我没有做到)。

警告:你不想在每一帧都使用这个函数,因为它的性能很重!

首先,您需要使用 BitmapData 将 displayObject 绘制到位图:

var bmd:BitmapData = new BitmapData(dispObject.width, dispObject.height, true, 0);
//Create new bitmapData with the same size as your object and with transparancy.
bmd.draw(dispObject);
//Draw you displayObject onto the empty Bitmap
var b:Bitmap = new Bitmap(bmd, true);
//Create the bitmap container and load the data, and the true turns smoothing on!
addChild(b);
//Add it to the stage and now you can use the scale and width variables like this
b.x = dispObject.x;
b.y = dispObject.y;
b.scaleX = dispObject.scaleX;
b.scaleY = dispObject.scaleY;
于 2012-08-13T14:35:52.880 回答