为什么FeathersUI标签剪切字母

时间:2014-05-06 08:54:31

标签: ios actionscript-3 flash air starling-framework

我使用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但建议的解决方法仅适用于某些情况。他们没有解决整个问题。

到目前为止我所知道的事情:

  1. baselineZero属性对我不起作用。请参阅此处的说明:http://forum.starling-framework.org/topic/why-does-label-cuts-letters#post-61471

  2. 设置baselineFontDescription有效,但不能用作正确的解决方法 - 您必须始终手动测量baselineFontSize。请参阅此处的说明:http://forum.starling-framework.org/topic/why-does-label-cuts-letters#post-61471

  3. 如何解决此问题?

1 个答案:

答案 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;
 }