我使用AIR,Starling和FeatherUI为iOS开发我的应用程序。
我使用Label和TextBlockTextRenderer(flash.text.engine.TextBlock)。
我遇到了以下问题:http://monosnap.com/image/1chKMEoG2fDufCMJIdrgcX3dcTbLMa
简而言之:字母的某些部分正在剪切。 (这个问题会影响具有高字形的语言,如挪威语,德语,阿拉伯语等......)
我已经问过有关此问题可能解决的问题:http://forum.starling-framework.org/topic/why-does-label-cuts-letters但建议的解决方法仅适用于某些情况。他们没有解决整个问题。
到目前为止我所知道的事情:
baselineZero属性对我不起作用。请参阅此处的说明:http://forum.starling-framework.org/topic/why-does-label-cuts-letters#post-61471
设置baselineFontDescription有效,但不能用作正确的解决方法 - 您必须始终手动测量baselineFontSize。请参阅此处的说明:http://forum.starling-framework.org/topic/why-does-label-cuts-letters#post-61471
如何解决此问题?
答案 0 :(得分:0)
我目前使用的解决方法是添加透明阴影过滤器。 您可能需要根据字体增加半径。
这绝不是一个好的解决方案,只是一个肮脏的 临时 修复。
public static function defaultTextRendererFactory():ITextRenderer
{
// Transparent shadow helps to avoid clipping on some fonts
var clipFix:DropShadowFilter = new DropShadowFilter(0.0, 0.0, 0x000000, 0.0, 2.0, 2.0, 0.0);
var textRenderer:TextBlockTextRenderer = new TextBlockTextRenderer();
textRenderer.nativeFilters = [clipFix];
return textRenderer;
}