对平滑显示对象应用平滑

时间:2012-08-13 14:26:28

标签: actionscript-3 flash

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

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

5 个答案:

答案 0 :(得分:5)

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

myDisplayObject.rotationX = 0.0; 

答案 1 :(得分:2)

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

答案 2 :(得分:2)

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

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

答案 3 :(得分:1)

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

look here

您的显示对象必须包含位图,或者是位图本身......

答案 4 :(得分:1)

您是否尝试过设置stage.quality = stageQuality.High;? 此外,如果你这样做,并且你想手动设置平滑,你可以尝试Lanczos re-sampling function(我没有做到)。

警告:你不想每帧都使用这个功能,因为它性能很重!

首先,您需要使用BitmapData将displayObject绘制为Bitmap:

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;