Flash 文本字段,动态大小

发布于 2024-08-23 08:17:03 字数 179 浏览 6 评论 0原文

我正在构建文本气球以在 Flash 中显示可变长度消息。我的问题很简单,但答案可能并非如此。

我有:

  • 我想要显示的字符串。
  • 字体信息。
  • 我希望文本字段具有的宽度/高度比。

如何计算显示我给它的文本所需的文本字段的宽度和高度,仅此而已?

I'm building text balloons to display variable length messages in Flash. My question is pretty simple, though the answer may not be.

I have:

  • The string I want to display.
  • The font information.
  • The width/height ratio I want the text field to have.

How do I calculate the width and height of the text field it needs to display the text I give it, nothing more, nothing less?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

不羁少年 2024-08-30 08:17:03

我能想到的最简单的事情是创建一个文本字段,设置自定义字体和文本,然后获取大小:

例如

var field:TextField = new TextField();
field.defaultTextFormat = new TextFormat('Verdana',12,0xDEDEDE);
field.text = 'someText';
trace(field.textWidth + ' / ' + field.textHeight);

textWidthtextHeight 应该为您提供正确的数字,而不是宽度和高度属性。如果您需要更多详细信息,请查看 TextLineMetrics 类

哈特哈,
乔治

Easiest thing I can think off is creating a textfield, setting the custom font and text then getting the size:

e.g.

var field:TextField = new TextField();
field.defaultTextFormat = new TextFormat('Verdana',12,0xDEDEDE);
field.text = 'someText';
trace(field.textWidth + ' / ' + field.textHeight);

textWidth and textHeight should give you the right numbers, as opposed the width and height properties. If you need more details than this, have a look at the TextLineMetrics class.

HTH,
George

网白 2024-08-30 08:17:03

如果您打开 autoSize,它应该会为您调整文本字段的高度。然后您可以使用相同的 field.textHeight 获取高度

var field:TextField = new TextField();
field.autoSize = "left";
field.multiline = true;
field.defaultTextFormat = new TextFormat('Verdana',12,0xDEDEDE);
field.text = 'someText';
trace(field.textWidth + ' / ' + field.textHeight);

if you turn on autoSize it should adjust the height of your text field for you. You can then just get the height using the same field.textHeight

var field:TextField = new TextField();
field.autoSize = "left";
field.multiline = true;
field.defaultTextFormat = new TextFormat('Verdana',12,0xDEDEDE);
field.text = 'someText';
trace(field.textWidth + ' / ' + field.textHeight);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文