2013-07-16 28 views
1

我是一個ActionScript初學者。最終我想編寫一些代碼來安排舞臺上的對象,並且要做到這一點,我需要知道它們的尺寸。我得到的行爲,我沒有從'寬度'屬性期望。在下面,無論我在TextField中使用什麼文本(無論是窄還是寬),'width'屬性都是100.我如何找出繪製像素的實際寬度?或者實際的高度?這就像找到一個邊界矩形,就像Qt會調用它一樣。如果我想將所有的孩子包含在邊界矩形內,那麼該怎麼辦?Sprite中實際繪製像素的寬度

public class App1 extends Sprite { 

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

回答

1

這是因爲默認情況下,TextField中的文本不會影響實際的文本字段大小。 想象一下,您將文本字段設置爲收集用戶電子郵件,如果用戶放置的文本越來越多,則不希望文本字段拉長... 因此,默認情況下,新的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); 

請記住,如果多設置爲true,文本字段不會擴大,它會得到下一行...