ActionScript drawRoundRect渲染角半径不一致

时间:2011-09-14 08:40:38

标签: actionscript-3

我正在尝试绘制一个具有相当精确圆角的形状,我会满足于3px左右的任何东西。不幸的是,Flash有其他想法,并且正在创建一个圆形矩形,其中有四个看似不同的半径。我的代码如下:

var sq:Shape = new Shape();
sq.graphics.beginFill(0x000000,1);
sq.graphics.drawRoundRect(20,20,20,20,4,4);
sq.graphics.endFill();
addChild(drop);

我删除了线条,因为显然填充渲染效果更好,并且变为偶数半径显然有帮助,但它仍然是相同的。上面的代码给了我一个像这样的正方形:

Zoomed in view of sqaure

角落明显不同。如果我使用更大的半径可能不是一个问题,但由于角的半径小,方块看起来很奇怪。

我是否错过了drawRoundRectEvenly函数,还是我在这里要求太多了?任何帮助表示赞赏!谢谢!

的Darren

1 个答案:

答案 0 :(得分:2)

尝试将pixelHinting设置为true。

sq.graphics.lineStyle(1, 0x000000, 1.0, true); 

即使你没有使用笔划,也要尝试使用alpha 0,看看它是否有助于平滑一些事情。它很可能仍然不是完美的,但它应该更好地捕捉像素并且显着地清理。