Flex中真正的drawText调用?

时间:2009-12-22 14:27:26

标签: flex actionscript-3

我现在正在开发一个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方法......

谢谢!

2 个答案:

答案 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中的恒星文本布局功能。