可调整大小的按钮与闪光CS4中的背景

时间:2009-12-07 15:39:59

标签: flash actionscript-3 button components

我想创建一个按内容动态调整大小的按钮。为了达到这个目的,我在库中创建了一个MovieClip,并在其中添加了四个层 - 文本,bg,阴影和边框。

我遇到的问题是,如果我进行文本字段自动调整,只有textfield调整大小,其他东西保持不变。如果我使用xxxLineMetrics函数计算所需的宽度并将其应用于Button,则背景会正确调整大小,但textfield也会延伸,看起来很难看。

我希望背景(文本域的兄弟)使用textfield正确调整大小,因此按钮看起来很好,具有调整大小的背景和正常的自动文本字段。

我希望你们得到我想要的东西......任何帮助表示赞赏......

谢谢,

2 个答案:

答案 0 :(得分:0)

您应该将计算出的宽度仅应用于bg动画片段而不应用于整个动画片段。因为这也会改变文本字段的宽度。

所以尝试这样的事情:

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

答案 1 :(得分: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;
        }

    }
}