У меня есть сценарий, в котором я хочу динамически добавлять слова текста в контейнер, чтобы он образовывал абзац текста, аккуратно упакованный в соответствии с размером родительского контейнера. Каждый текстовый элемент будет иметь различное форматирование и разные параметры взаимодействия с пользователем. Например, представьте, что текст «только что высказался». Каждое слово будет добавляться в контейнер по одному за время выполнения. Имя пользователя в этом случае будет выделено жирным шрифтом, и при щелчке по нему произойдет событие. То же самое с новостной статьей. Остальная часть текста - это просто текст, который при нажатии ничего не изменит.
Теперь я использую Flex 3, поэтому у меня нет доступа к новым модным инструментам форматирования текста. Я реализовал решение, в котором слова выводятся на холст, но это означает, что слова переносятся в определенную позицию y (произвольное значение, которое я выбрал). При изменении размера контейнера слова по-прежнему переносятся в ту позицию, которая оставляет много места.
Я думал о добавлении каждого текстового элемента в коллекцию массивов и использовании его в качестве источника данных для списка листов, но списки листов не поддерживают переменную ширину столбцов (насколько мне известно), поэтому каждое слово будет использовать одинаковое количество пространство, которое не идеально.
Кто-нибудь знает, как я могу разместить слова в контейнере, чтобы сохранить форматирование, события и перенос слов на уровне абзаца, даже если размер контейнера изменился?