Actionscript 3 对缩放的显示对象应用平滑

Actionscript 3 对缩放的显示对象应用平滑,actionscript-3,flash,Actionscript 3,Flash,我有一个正在缩小的显示对象(不是图像)。它具有与缩放图像时相同的锯齿和锯齿边。有没有一种方法可以像平滑图像一样平滑显示对象 更新 这是具有交互式子显示对象的交互式显示对象(精灵)。我不能把它画成位图 您可以尝试将位图对象的平滑属性设置为true,然后缩放它: 显示对象必须包含位图,或者是位图本身…是否尝试设置stage.quality=stageequality.High? 另外,如果您这样做了,并且希望手动设置平滑,您可以尝试(我没有做到) 警告:您不希望每帧都使用此函数,因为它的性能非常高

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

更新

这是具有交互式子显示对象的交互式显示对象(精灵)。我不能把它画成位图

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


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

是否尝试设置
stage.quality=stageequality.High?
另外,如果您这样做了,并且希望手动设置平滑,您可以尝试(我没有做到)

警告:您不希望每帧都使用此函数,因为它的性能非常高

首先,需要使用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;

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

myDisplayObject.rotationX = 0.0; 

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

使用像素混合器对精灵进行双三次重采样吗


在这种情况下,它不是位图。我在我的回答中添加了一种方法,让您可以从displayObject创建位图!我已经尝试过将舞台质量设置为高质量,也是最好的,但没有任何改变。如果你真的需要,我建议你通读我给出的示例代码,并尝试通过这种方式解决它!它是具有子对象的交互式显示对象。我无法将其绘制为位图。您不能将子对象绘制为位图吗?不,子对象是交互式的,并且也在移动,因此这不是一个选项。我以前使用过像素暗示以获得更好的结果。谢谢。嗯,很有趣。我不明白你之前的建议。我得在工作中试试。3D模式有很大区别吗?它有什么不同?它在缩放时看起来更平滑(或者根据您的喜好更模糊),因为它会强制硬件加速(如果支持),这与缩放宽度和高度为2次方的位图时利用gfx卡上的mipmapping(如果支持)的效果非常相似。