2

Hello Guys 以下の関数を使用して、実行時に動的なフォント サイズをスケーリングしています。

function scaleTextToFitInTextField( txt : TextField ):void{
 var f:TextFormat = txt.getTextFormat();
 f.size = ( txt.width > txt.height ) ? txt.width : txt.height;
 txt.setTextFormat( f );

 while ( txt.textWidth > txt.width - 4 || txt.textHeight > txt.height - 6 ){               
    f.size = int( f.size ) - 1;
    txt.setTextFormat( f );
}
}

scaleTextToFitInTextField( tf );
// tf is a dynamic multiline textfield on stage with dimension 150x150

テキストフィールドに外部コンテンツが入力されると、すべてのテキストがテキストフィールドに収まるようにフォントサイズが縮小されます。ここまでの作品。

私の最大の問題は、この関数がテキストフィールドの HTML フォーマットに干渉することです。例えば; 外部 HTML をロードします。

<font size="-2">this text is way</font><br><font size="+5">TOO BIG</font><br>to fit in this box, but I'll give it a try!

テキスト フィールドにスケール機能を適用すると、html の書式設定 (サイズのバリエーション) が機能しませんが、スケール機能を削除すると機能します。

理想的には、テキストが収まらない場合はフォントを拡大縮小し、html 形式も適用できるようにしたいと考えています。

誰か助けてください。CS5を使用しています

どうもありがとう。

4

1 に答える 1

0

<![CDATA[]]>htmlText を次のようにラップすると機能する場合があります。

<![CDATA[<font size="-2">this text is way</font><br><font size="+5">TOO BIG</font><br>to fit in this box, but I'll give it a try!]]>

それ以外の場合は、TextField をスプライトでラップして、代わりにスプライトをスケーリングできますか? as3を使用して中心点からフラッシュで動的テキストフィールドをどのようにスケーリングしますか?

于 2011-07-01T00:28:32.923 に答える