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

对于普通的 TextFields,您必须在添加文本之前指定格式,否则它不适用,尝试过吗?

于 2012-05-05T16:55:02.083 回答
0

下面的代码将解决您的问题。就像 Sidrich 说的,总是最后设置 text 属性!我还添加了 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

我有同样的问题我已经实现了 http://flashthusiast.com/2010/05/05/getting-started-with-the-tlftextfield-class-in-actionscript-3-0-and-flash-cs5/comment-page -1/#comment-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 回答