Actionscript 3 自动调整动态文本字体大小as3

Actionscript 3 自动调整动态文本字体大小as3,actionscript-3,text,dynamic,resize,autosize,Actionscript 3,Text,Dynamic,Resize,Autosize,我有一个动态文本字段,必须是一个固定的宽度和高度 将填充动态文本字段的实际文本是一个变量 如果文本没有完全显示在文本字段的维度中,我想做的是减小字体大小 关于如何准确地执行此操作,有什么想法吗 另外,我正在使用AS 3。试试这个: var tfspecial:int = tfFontSize + tfInterLine; while (tf.numLines < tf.height * tfspecial) { tf.height += tfspecial; } var-tfs

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

将填充动态文本字段的实际文本是一个变量

如果文本没有完全显示在文本字段的维度中,我想做的是减小字体大小

关于如何准确地执行此操作,有什么想法吗

另外,我正在使用AS 3。

试试这个:

var tfspecial:int = tfFontSize + tfInterLine;

while (tf.numLines < tf.height * tfspecial) {
    tf.height += tfspecial;
}
var-tfspecial:int=tfFontSize+tfInterLine;
而(tf.numLines
如果您仍在查看,请尝试一下:(假设您的文本字段设置为“multiline”,并且在初始化时仅为1行高)


我写了这个函数,但我不知道为什么它只在动态文本上工作一次。当替换tf上的内容时,它不会正确设置tfHeight。但是,如果将常量tfHeight值insted var tfHeight=tf.height设置为常量,则它会起作用

function fitFontSize(tf:TextField){
    //pobieramy oktualna wysokosc pola tekstowego
    var tfHeight = tf.height;
    // ustawiamy automatyczne rozszerzanie sie pola ze wzgledu na zawartosc
    tf.autoSize =  TextFieldAutoSize.LEFT ;
    // tworzymy obiekt tekst format
    var myFormat:TextFormat = new TextFormat();
    //ustawiamy poczatkowa wielkosc fonta na 100
    var tfFontSize:Number =100;
    // przypisujemy do obiektu
    myFormat.size = tfFontSize;
    tf.setTextFormat(myFormat);
    /*Z PETLI FOR POMNIEJSZAMY SUKCESYWNIE CZCIONKE O JEDEN
PIKSEL DO MOMENTU GDY tf TEKSTOWE OSIAGNIE POŻADANĄ 
WYSOKOSC LUB MNIEJSZA*/

    for (var i:int = 0; i<100; i++){
        tfFontSize-=1;
        myFormat.size = tfFontSize;
        tf.setTextFormat(myFormat);
        if (tf.height<= tfHeight){
        break;
        }
    }
}
函数fitFontSize(tf:TextField){
//pobieramy oktualna wysokosc pola tekstowego
var tfHeight=tf.height;
//我们是自动的,请你帮我翻译一下
tf.autoSize=TextFieldAutoSize.LEFT;
//tworzymy obiekt-tekst格式
var myFormat:TextFormat=newtextformat();
//ustawiamy poczatkowa wielkosc fonta na 100
变量tfFontSize:Number=100;
//奥比克图酒店
myFormat.size=tfFontSize;
tf.setTextFormat(myFormat);
/*Z PETLI代表POMNIEJSZAMY Suckesywnie Czzionke O JEDEN
格德斯托·奥萨尼·波阿丹·波阿丹·波阿丹·波阿尼·波阿丹·波阿尼·波阿丹·波阿尼·波阿尼·波阿丹·波阿尼·波阿尼·波阿丹·波阿尼·波阿尼·波阿丹·波阿尼·波阿
WYSOKOSC LUB MNIEJSZA酒店*/

对于(var i:int=0;ihey 2smacks,谢谢你的回答。但是请原谅我的知识不足。我对这一点还不熟悉,你刚刚说了一种奇怪的语言。哈哈,我不知道如何实现这段代码。请扩展一下。奇怪的事情发生在我身上"…numLinestf是您的文本字段。您不明白什么?它可以工作!。感谢NHubben和其他人。不过有一个小问题。它可以调整文本大小,使其仅适合一行。在调整大小之前是否可以将多余的文本移到下一行。例如,调整文本字段的宽度和高度。非常感谢您不必检查行数,您可以设置目标t width和height并检查每一个。如果width很酷,但height不是。将其缩小并再次检查。这值得花一些时间,方便地使用文本格式和文本字段操作。干杯还有人刚刚将此片段发布到一篇新帖子上,问同样的问题:非常感谢各位。这个链接对Hubben非常有用。非常感谢
function fitFontSize(tf:TextField){
    //pobieramy oktualna wysokosc pola tekstowego
    var tfHeight = tf.height;
    // ustawiamy automatyczne rozszerzanie sie pola ze wzgledu na zawartosc
    tf.autoSize =  TextFieldAutoSize.LEFT ;
    // tworzymy obiekt tekst format
    var myFormat:TextFormat = new TextFormat();
    //ustawiamy poczatkowa wielkosc fonta na 100
    var tfFontSize:Number =100;
    // przypisujemy do obiektu
    myFormat.size = tfFontSize;
    tf.setTextFormat(myFormat);
    /*Z PETLI FOR POMNIEJSZAMY SUKCESYWNIE CZCIONKE O JEDEN
PIKSEL DO MOMENTU GDY tf TEKSTOWE OSIAGNIE POŻADANĄ 
WYSOKOSC LUB MNIEJSZA*/

    for (var i:int = 0; i<100; i++){
        tfFontSize-=1;
        myFormat.size = tfFontSize;
        tf.setTextFormat(myFormat);
        if (tf.height<= tfHeight){
        break;
        }
    }
}