Flex 3 htmlText вычисляет неверную высоту и удаляет теги span - PullRequest
0 голосов
/ 12 января 2011

У меня в настоящее время две проблемы с htmlText Flex 3.

1) Когда я устанавливаю htmlText моего текста:

myText.htmlText =

неверно рассчитывает высоту. В большинстве случаев тонна отступов (или пробелов) добавляется над и под текстом. Я не уверен, что произойдет, но он вычисляет textHeight выше, чем обычно.

2) Если я добавлю теги в мой html, он автоматически удалит их (вместо того, чтобы просто игнорировать их). Я использую теги span, чтобы иметь возможность динамически находить определенные фрагменты моего текста. Например:

Уважаемый, [Имя]

вставлено в мой htmlText, и я использую их для анализа приветствия и тега моих переменных данных.

Кто-нибудь знает какие-либо решения для этих двух проблем? Любые альтернативные идеи о том, как разобрать куски HTML? Есть ли способ улучшить HTMLText? Как правильно измерить textHeight и / или удалить отступы?

Спасибо!

Ответы [ 2 ]

1 голос
/ 10 марта 2011

По сути, тегу необходимо явно указать ширину и высоту, чтобы flex мог правильно рассчитать высоту для этих элементов.Кроме того, вы можете использовать:

invalidateSize();
validateSize();

Для принудительной проверки размера, что иногда поможет!

0 голосов
/ 12 января 2011
  1. Добавьте эти две строки перед использованием любого XML:

    XML.ignoreWhitespace = true;
    XML.prettyPrinting = false;
    

    Это должно позаботиться о добавленных строках выше и ниже вашего текста.

    ignoreWhitespace удаляет начальные и конечные пробелы из текстовых узлов.
    prettyPrinting , если задано значение true, форматирует вывод XML, выравнивая узлы и добавляя символы новой строки, чтобы сделать его более читабельным, но также влияет на вывод текста. Например, когда у вас есть такая структура:

    <p><span class="test">This is a test.</span></p>
    

    Flash выдаст:

    <p>
        <span class="test">
            This is a test.
        </span>
    </p>
    

    Это приводит к отображению вашего TextField:

    (newline)
    (newline)
    This is a test.
    (newline)
    (newline)
    
  2. Плагин Flash удалит все теги HTML, если свойство styleSheet установлено неправильно. Так что в вашем случае он удалит теги <span> и добавит вместо него собственные теги <P> и <FONT> в соответствии с любой информацией о шрифтах, которую вы указали с помощью defaultTextFormat или setTextFormat (попробуйте отслеживать htmlText после Установил - увидишь). Вы должны установить свойство styleSheet TextField на фактическую таблицу стилей, если хотите сохранить свои собственные теги.

  3. Разбор необходимой вам информации с использованием HTML-тегов - это правильный путь. Я обычно использую пронумерованные заполнители, такие как {0} и string.replace (), чтобы вставить динамические значения.

...