0

タイトルごとに、どうすればよいですか?これが私のシナリオを反映した最小限の実例です:

import fl.text.TLFTextField;
import flashx.textLayout.formats.*;
import flashx.textLayout.elements.TextFlow;
import flashx.textLayout.edit.*;

var tf:TLFTextField = new TLFTextField();
tf.embedFonts = true;
tf.text = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean suscipit semper viverra.';
var format:TextLayoutFormat = new TextLayoutFormat();
format.fontFamily = 'MyPlainFont';
format.fontLookup = FontLookup.EMBEDDED_CFF;    
format.fontSize = 14;
format.textAlign = TextAlign.CENTER;

var editManager:EditManager = new EditManager();
var sel:SelectionState = new SelectionState(tf.textFlow, 0, 86);
tf.textFlow.interactionManager = editManager;
editManager.applyLeafFormat(format, sel);

var format2:TextLayoutFormat = new TextLayoutFormat();
format2.fontFamily = 'MyBoldFont';
format2.fontLookup = FontLookup.EMBEDDED_CFF;
format2.fontSize = 14;
format2.textAlign = TextAlign.CENTER;
var sel2:SelectionState = new SelectionState(tf.textFlow, 0, 20);
editManager.applyLeafFormat(format2, sel2);

tf.width = 100;
tf.wordWrap = true;

addChild(tf);
4

3 に答える 3

0

以下のこのコードはあなたの問題を解決します。シドリッヒが言ったように、常に最後にテキストプロパティを設定してください!また、autoSizeプロパティを追加しました。これを設定しないと、奇妙なポジショニングの不具合が発生するためです。

import fl.text.TLFTextField;
import flashx.textLayout.formats.TextLayoutFormat;
import flashx.textLayout.edit.EditManager;
import flashx.textLayout.formats.TextAlign;
import flashx.textLayout.edit.SelectionState;
import flash.text.TextFieldAutoSize;

var tf:TLFTextField = new TLFTextField();
tf.embedFonts = true;
tf.border = true;

var format:TextLayoutFormat = new TextLayoutFormat();
format.fontFamily = 'MyPlainFont';
format.fontLookup = FontLookup.EMBEDDED_CFF;    
format.fontSize = 14;
format.textAlign = TextAlign.CENTER;
var editManager:EditManager = new EditManager();
var sel:SelectionState = new SelectionState(tf.textFlow, 0, 86);
tf.textFlow.interactionManager = editManager;
editManager.applyLeafFormat(format, sel);

var format2:TextLayoutFormat = new TextLayoutFormat();
format2.fontFamily = 'MyBoldFont';
format2.fontLookup = FontLookup.EMBEDDED_CFF;
format2.fontSize = 14;
format2.textAlign = TextAlign.CENTER;
var sel2:SelectionState = new SelectionState(tf.textFlow, 0, 20);
editManager.applyLeafFormat(format2, sel2);

tf.width = 100;
tf.wordWrap = true;
tf.autoSize = TextFieldAutoSize.CENTER;
tf.text = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean suscipit semper viverra.';

addChild(tf);
于 2012-05-06T01:56:15.017 に答える
0

通常の TextField の場合、テキストを追加する前にフォーマットを割り当てる必要があります。そうしないと適用されません。試してみましたか?

于 2012-05-05T16:55:02.083 に答える
0

http://flashthusiast.com/2010/05/05/getting-started-with-the-tlftextfield-class-in-actionscript-3-0-and-flash-cs5/comment-pageを実装したのと同じ問題がありました -1/#コメント-72699

textAlign='center'段落タグに追加して中央に配置しました。

tlf flashx text-formats のテキスト形式に属します

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flashx/textLayout/formats/TextAlign.html#CENTER

于 2012-08-28T09:47:58.580 に答える