1

ステージ上にダイナミック テキスト フィールドがあり、ステージ サイズ (800x600) に従ってテキストのフォント サイズを自動拡大したい。これどうやってするの?

大きなフォント サイズを手動で入力すると、テキストの長さがはるかに大きくなり、切り取られます。これに関するアイデアはありますか?

Actionscript 3 を使用しています。

ありがとう!

4

2 に答える 2

1

これを行うにはいくつかの方法があります。生成するテキストの量に関係なく同じサイズのフォントを使用する場合はwordWrap = true、テキスト フィールドで を使用する必要があります。フィールド内のテキストの量に応じてフォントを調整したい場合は、少し難しくなりますが、不可能ではありません。私はこのようなことをします

var maxFont:int = 72;
var minFont:int = 9;
var currentSize:int;
var maxTxtWidth:int = 550;
var incTxt:String;

var tf:TextField = new TextField;
tf.autoSize = "left";
currentSize = maxFont;
while(tf.width > maxTxtWidth){
    tf.htmlText = '<font size="'+currentSize+'">'+incTxt+'</font>';
    if(currentSize == minFont){
       break;
    }  
    currentSize --;
}

次に、通常どおりaddchildなどを追加します。スタイルまたは textFormat を使用してそれを行う方法は他にもありますが、これは迅速な解決策であり、最初に頭に浮かんだ方法です。この特定の構文は、1 行のテキストに対してのみ適切に機能することに注意してください。少し調整して、複数行に適したものにすることができます。このテクニックを使用する場合は、クリーンアップしてください。これは私の頭から直接吐き出されたものです。

于 2013-09-23T11:30:31.137 に答える