Sprite中实际绘制像素的宽度

时间:2013-07-16 19:19:43

标签: actionscript-3 flash

我是一个Actionscript初学者。最终我想编写一些在舞台上排列对象的代码,为此,我需要知道它们的尺寸。我得到了'width'属性我没想到的行为。在下面,无论我在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);
}
}

1 个答案:

答案 0 :(得分: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,文本字段不会加宽,它将转到下一行......