2

在我的 Flex 移动项目中,我需要用几条线和矩形绘制一个精灵,然后在不平滑边缘的情况下旋转/缩放它。问题是 - 第一次绘制精灵时,没有平滑,但是一旦旋转/缩放,线条和矩形边缘就会变得平滑(或抗锯齿?)。即使将旋转设置回 0 并将 scaleX scaleY 设置回 1,它们也会保持平滑。

我尝试像这样将我的精灵转换为位图:

stage.quality=StageQuality.LOW; // for performance reasons
.......
var tempSprite:Sprite=new Sprite();
// draw stuff on tempSprite

var b:BitmapData = new BitmapData(w, h, true, 0x0);
b.draw(tempSprite,null,null,null,null,false); // smoothing=false
var bitmap:Bitmap = new Bitmap(b,"auto",false); // smoothing=false
bitmap.smoothing=false; 
myUIComponent.addChild(bitmap);

但这并没有帮助 - 旋转/缩放位图时仍然会变得平滑。

所以,我的问题是:当旋转和缩放值被重置时,是否可以完全禁用平滑或至少将精灵返回到未平滑状态?

4

1 回答 1

1

如果您使用 AIR for mobile 并启用 GPU 模式,那么您的位图将始终被平滑。您真正能做的就是通过不缩放/旋转位图来隐藏平滑,并确保绘制列表层次结构中的任何容器都不是。我遇到了和你类似的问题,我唯一的解决办法是重写我的显示缩放代码,所以我只能忍受模糊,直到我的下一个项目。

于 2012-07-04T21:17:49.387 回答