修改舞台上的TLF文本字段属性

时间:2012-10-10 19:32:02

标签: actionscript-3 flash tlf

我在舞台上有一个TLF文本字段。我试图在简单的flash文档中测试它。

我的代码接受了一些我解析的xml。 xml会有所不同,并不会始终更改文本字段的所有属性。例如,在一种情况下,我只想改变字体的大小。在另一种情况下,我只想更改字体的对齐方式。

我正在使用TLF文本字段,因为我们将翻译成阿拉伯语,并且我已经使用了从右到左的文本。

这些是我需要在代码中编辑的一些属性:

  • 字体大小
  • 字体
  • 对齐
  • 龙头
  • 粗体,斜体,下划线(重量)

任何编码帮助都会很棒。我已经看到了文本流和文本布局的想法,但我显然没有正确使用它,因为我无法让它工作。

1 个答案:

答案 0 :(得分:0)

很久以前我放弃并停止使用TLF字段。我有一个项目,请求动态addind和从/到阶段删除tlf文件。这是该项目的代码:

这将动态生成默认格式

        var config:Configuration    = new Configuration();
        var defTextFormat:  TextLayoutFormat = new TextLayoutFormat();
        defTextFormat.textAlign   = TextAlign.LEFT;
        defTextFormat.fontFamily  = m_strFontName;
        defTextFormat.fontSize    = m_nFontSize;
        defTextFormat.fontWeight  = FontWeight.BOLD
        defTextFormat.paddingLeft = 3;
        defTextFormat.paddingTop  = 3;
        defTextFormat.paragraphStartIndent = 3;
        defTextFormat.paragraphSpaceBefore = 3;

        config.defaultLinkActiveFormat  = defTextFormat;
        config.defaultLinkHoverFormat   = defTextFormat;
        config.defaultLinkNormalFormat  = defTextFormat;
        config.textFlowInitialFormat    = ITextLayoutFormat( defTextFormat );

        m_textFlow = new TextFlow( config );

成员m_textFlow包含ref到TLF字段。 要添加和删除元素,请使用m_textFlow.addChild(p);其中p是段落元素 见:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flashx/textLayout/elements/ParagraphElement.html

要更改FontSize并为元素着色,例如:

var _p:ParagraphElement = ParagraphElement( m_textFlow.getChildAt( iChild ) );
for ( var iParChild: uint = 0; iParChild < _p.numChildren; ++iParChild )
{
   _p.getChildAt( iParChild ).color = color;
       _p.getChildAt( iParChild ).fontSize = nRatio;

...

也许这可以帮到你。