Apache flex 字体中的大衬线会导致flash无法正确测量大小

Apache flex 字体中的大衬线会导致flash无法正确测量大小,apache-flex,flash,actionscript-3,fonts,Apache Flex,Flash,Actionscript 3,Fonts,我有一个textarea,在这里我测量textWidth和textHeight,以确保用户输入的文本不能超过文本区域的容量。我还使用textHeightNow和textWidthNow扩展了textArea,它们测量textField的尺寸,因为它们的更新不需要验证。现在,这对我使用的90%的嵌入式字体非常有效,但任何带有巨大衬线的字体都没有正确测量,例如,请查看此文本区域中的“f”: 您可以看到它们两边都被截断,因为textWidth和textWidthNow都返回了不正确的大小,没有考虑到

我有一个textarea,在这里我测量textWidth和textHeight,以确保用户输入的文本不能超过文本区域的容量。我还使用textHeightNow和textWidthNow扩展了textArea,它们测量textField的尺寸,因为它们的更新不需要验证。现在,这对我使用的90%的嵌入式字体非常有效,但任何带有巨大衬线的字体都没有正确测量,例如,请查看此文本区域中的“f”:

您可以看到它们两边都被截断,因为textWidth和textWidthNow都返回了不正确的大小,没有考虑到大量衬线。字体大小、坐标和文本区域的尺寸都是整数,所以这不是问题,还有其他建议吗?我查看了textArea是否有clipContent参数,但它没有(这会很好)


谢谢

我以前遇到过这个问题,据我所知,您有两个选择,没有一个很好:

  • 在中使用新的flash.text.engine Flash播放器10。。。它很难使用,但是 我想它会测量这样的字体 (和结扎)正确
  • 将文本字段绘制到位图数据中 并使用getColorBoundsRect 确定它的真实尺寸
我最终使用了后者,因为将整个应用程序换成新引擎要困难得多。您需要调整边距并使用较大的文本字段(在某些容器中)才能正确绘制,但它应该可以工作。

。我曾想过使用bitmapdata路线,但担心性能,但我很高兴听到您尝试了它,并且它工作正常,我想我会尝试一下。flash.text.engine很吸引人,但我不想有两个不同版本的SWF:p谢谢你提供的信息。