2009-12-07 77 views
0

我想創建一個可以動態調整內容大小的按鈕。爲了達到這個目的,我在庫中創建了一個MovieClip,並在其中添加了四層 - 文本,bg,陰影和邊框。帶有閃光背景的可調整大小的按鈕CS4

問題我得到的是,如果我讓文本字段自動調整大小,只有文本字段調整大小,而其他東西保持原樣。如果我使用xxxLineMetrics函數計算所需的寬度並將其應用於Button,則背景會正確調整大小,但文本字段也會與它們一起延伸並看起來很難看。

我想要背景(文本字段的兄弟)與文本字段正確調整大小,所以按鈕看起來不錯,調整大小的背景和正常的自動化文本字段。

我希望能跟大家得到了我想要的東西...任何幫助讚賞...

感謝,

回答

0

您應該計算寬度與BG影片剪輯只適用,而不是整個影片剪輯。因爲這也會改變文本框的寬度。

所以嘗試這樣的事:

txt.autoSize = TextFieldAutoSize.LEFT; 
txt.text = "label"; 
btn.bg.width = txt.width; 
+0

我已經試過這一點,但它也舒展文本框! – DexTer 2009-12-07 15:59:05

+0

和你的textfiels不是你的背景movieclip的孩子? – Yens 2009-12-07 16:28:56

+0

我的TExtFields和Background Sprite/Image都是兄弟姐妹 - 父Sprite的孩子。 – DexTer 2009-12-08 05:00:45

0

你可以試試下面的代碼:

package 
{ 
    import flash.display.MovieClip; 
    import flash.display.Sprite; 
    import flash.text.TextField; 
    import flash.text.TextFieldAutoSize; 

    /** 
    * class represents the MyButton Movieclip in your library containing a dynamic 
    * textfield with instancename txt 
    * and a background movieclip with instance name bg 
    */ 
    public class MyButton extends MovieClip 
    { 
     public var txt : TextField; 
     public var bg : MovieClip; 

     public function MyButton(label : String) 
     { 
      txt.autoSize = TextFieldAutoSize.LEFT; 
      txt.text = label; 
      bg.width = txt.width; 
     } 

    } 
}