Измените свойства текстового поля TLF, которые находятся на стадии

У меня на сцене есть текстовое поле TLF. Я пытаюсь проверить это в простом флеш-документе.

Мой код принимает некоторый xml, который я разбираю. XML может быть разным и не всегда изменяет все свойства текстового поля. Например, в одном случае я хочу изменить только размер шрифта. В другом случае я хочу изменить только выравнивание шрифта.

Я использую текстовые поля TLF, потому что мы будем переводить на арабский, и у меня уже есть текст справа налево, работающий с ними.

Вот некоторые свойства, которые мне нужно будет отредактировать в коде:

  • Размер шрифта
  • Шрифт
  • Выравнивание
  • Ведущий
  • Жирный, Курсив, Подчеркнутый (начертание)

Любая помощь в кодировании была бы замечательной. Я встречал идеи для размещения текста и разметки текста, но я, очевидно, использую их неправильно, потому что не могу заставить их работать.


person stw7651    schedule 10.10.2012    source источник


Ответы (1)


Задолго до того, как я сдаюсь и перестану использовать поля TLF. У меня есть проект, который запрашивает динамическое добавление и удаление файлов 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 содержит ссылку на поле 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;

...

Может быть, это поможет тебе.

person Azzy Elvul    schedule 11.10.2012