2009-09-10 48 views
1

我使用AS3和我创建了一个弹出框,因为这样:自动调整雪碧在ActionScript 3

 var s:Sprite = new Sprite(); 

     var shape:Shape = new Shape(); 
     shape.name = "HitArea"; 
     s.addChild(shape); 

     shape.graphics.lineStyle(4, 0xFFFFFF, 1); 
     shape.graphics.beginFill(0xFFFFFF); 
     shape.graphics.drawRoundRect(0, 0, 200, 30, 10, 10); 

     var text:TextField = new TextField(); 
     text.text = ""; 
     text.autoSize = TextFieldAutoSize.CENTER; 
     text.name = "Text"; 
     text.x = 100; 
     text.y = 10; 
     s.addChild(text); 

     return s; 

它创建了一个200×30盒充当一个错误对话框。文本有时会超出框,因为我使用

 (s.getChildByName('Text') as TextField).text = "Text here"; 

如何使文本符合框?还是有更好的选择?

回答

1

如何设置文本后设置大小?

var s:Sprite = new Sprite(); 

    var text:TextField = new TextField(); 
    text.text = ""; 
    text.autoSize = TextFieldAutoSize.CENTER; 
    text.name = "Text"; 
/* // Not yet 
    text.x = 100; 
    text.y = 10; 
*/ s.addChild(text); 

    // Create the shape based on text's size 
    var shape:Shape = new Shape(); 
    shape.name = "HitArea"; 
    s.addChild(shape); 
    shape.graphics.lineStyle(4, 0xFFFFFF, 1); 
    shape.graphics.beginFill(0xFFFFFF); 
    shape.graphics.drawRoundRect(0, 0, text.width + 32, text.height + 32, 10, 10); // Plus padding 

    // Now adjust the text's position to the box's center 
    text.x = (s.width - text.width)/2; 
    text.y = (s.height - text.height)/2; 

    return s; 

那样的话,箱子可以随着文本扩展,不管它有多大。