我现在正在开发一个Flex应用程序,我需要控制Flex控件的每个像素。我想计算一下我的控件中使用的一些文本的宽度和高度,以及做一些布局的东西。经过一些搜索,我发现在Flex中绘制文本的唯一方法是使用像TextField这样的东西。因此,我使用TextField显示文本并尝试通过以下方式获取文本的宽度和高度:
textfiled.getLineMetrics(0).WIDTH / .height;
但真正的文本字段比这要大得多,所以我这样做:
textfield.width = textfiled.getLineMetrics(0).width; textfield.height = textfiled.getLineMetrics(0).height;
但是,文本字段部分没有显示,我对此效果感到惊讶。我知道文本周围应该有一个2像素的排水沟,但剩下的空间是什么?为什么不显示文本高度/宽度的近20%部分?
我如何在Flex中获得真正的drawText调用,我的意思是像Windows的drawText方法......
谢谢!
答案 0 :(得分:1)
你可以尝试这个:getCharBoundaries()我已经使用它并且看起来很准确它是用于char而不是整个文本所以你需要遍历文本
也看到了这个:
Is there a way to get the actual bounding box of a glyph in ActionScript?
答案 1 :(得分:0)
请尝试:
textfield.width = textfield.textWidth + 4;
textfield.height = textfield.textHeight + 4;
我不熟悉Windows的drawText方法,所以我无法帮助你,但也许你想看看Flex 4中的恒星文本布局功能。