动态文本 - 自动调整字体大小

时间:2010-10-21 15:24:48

标签: flash actionscript-3 actionscript actionscript-2

我有动态文本字段,必须是固定的宽度和高度。

将填充动态文本字段的实际文本是可变的。

如果文本未在文本字段的维度内完全显示,我想要做的是减小字体大小。

关于如何准确执行此操作的任何想法?

另外,我正在使用AS 2.

由于

2 个答案:

答案 0 :(得分:3)

这应该有效:

function updateFontSize(tField:TextField, defaultSize:Number) {
var tFormat:TextFormat = new TextFormat();
tFormat.size = defaultSize;
tField.setTextFormat(tFormat);

var size:Number = defaultSize;
while((tField.textWidth > tField._width || tField.textHeight > tField._height) && size > 0) {
    size = size - 1;
    tFormat.size = size;
    tField.setTextFormat(tFormat);
}}

每当您更改文字时都要调用此功能。该函数的第一个参数是文本字段。第二个是您希望的字体大小(如果它太大,它将减少)。

答案 1 :(得分:1)

关于SomeBloke的代码,这是使用缩放

的另一种方法
//set the TextField width & height 
var fixedWidth:Number = 200;
var fixedHeight:Number = 24;

function scaleTextToSize(tField:TextField, defaultScale:Number) 
{
   //You can fine tune the amount of scaling here
   var amount:Number = .1;
   var scale:Number = defaultScale;

   while((tField.width > fixedWidth || tField.height > fixedHeight) ) 
   {
      scale -= amount;
      tField.scaleX = tField.scaleY = scale;
   }
}