2009-11-02 41 views
1

我有一个textarea我测量textWidth和textHeight,以确保用户不能输入更多的文字,可以适应文本区域。我还使用textHeightNow和textWidthNow扩展了textArea,它们测量textField的维度,因为它们更新w/out需要验证。现在,这对我使用嵌入字体的90%的伟大工程,但有巨大的衬线任何字体未在“在此文本区域F的适当的衡量,比如看:大字体在一个字体导致闪光测量尺寸不正确

alt text http://img.skitch.com/20091101-xhm5jguma1qgukg6fxrymrwr3u.jpg

你可以因为textWidth和textWidthNow都会在不考虑大量衬线的情况下返回不正确的尺寸。文本区域的字体大小,坐标和尺寸都是整数,所以这不是问题,还有其他建议?我期待看看textArea是否有一个clipContent参数,但它不(这本来不错)。

感谢

回答

2

我碰到的这个问题之前,而据我可以告诉你有两个选择,他们没有很漂亮:

  • 使用新flash.text.engine Flash Player 10 ...它很难使用,但 我认为它会正确测量字体 (和连字)。
  • 将文本字段绘制为位图数据 并使用getColorBoundsRect至 确定其实际尺寸。

我结束了使用后者作为改变整个应用程序的新引擎会困难得多。您需要调整边距并使用较大的文本框(在某个容器内)才能正确绘制边框,但它应该可以工作。

+0

*叹*。我想过要走bitmapdata路线,但担心性能,但我很高兴听到你尝试了它的工作,我想我会放弃。 flash.text.engine很诱人,但我不想为不同版本使用两个swf:p 感谢您的信息。 – Shizam 2009-11-02 18:09:16