1

我是一个 Actionscript 初学者。最终我想编写一些代码来安排舞台上的对象,为此我需要知道它们的尺寸。我从“宽度”属性中得到了我没想到的行为。在下文中,无论我在 TextField 中使用什么文本(无论是窄还是宽),“width”属性都是 100。如何找出绘制像素的实际宽度是多少?还是实际身高?这就像找到一个边界矩形,就像 Qt 所说的那样。如果我想在边界矩形内包含所有孩子怎么样?

public class App1 extends Sprite {

public function App1() {
  var t:TextField = new TextField();
  t.text = "Foo Foo";
  addChild(t);
  trace(t.width);
}
}
4

1 回答 1

1

这是因为默认情况下,TextField 中的文本不会影响实际的文本字段大小。想象一下,您放置一个文本字段来收集用户电子邮件,如果用户广告越来越多的文本,您不希望文本字段伸展……所以默认情况下,一个新的文本字段是 100 像素宽,无论它包含什么文本。但是,您可以通过弄乱 autoSize 属性来使 TextField 动态增长。

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/text/TextField.html#autoSize

尝试这个 :

          var t:TextField = new TextField();
          t.autoSize = TextFieldAutoSize.LEFT;
          t.text = "Foo Foo qdfqsdfqsdfq sdfqsdfqsdfqsdf qsdf";
          addChild(t);
          trace(t.width);

请记住,如果 multiline 设置为 true,则文本字段不会变宽,它将到达下一行...

于 2013-07-16T19:52:33.530 回答