Я пытаюсь внедрить функцию отброшенных инициалов в свое приложение Flex. Поскольку Text Layout Framework не поддерживает плавающее, единственное известное решение - создать дополнительные контейнеры, которые будут связаны вместе, отображая один и тот же текстовый поток. Ширина и расположение этих контейнеров должны быть установлены таким образом, чтобы они делали вид, что они плавающие.
Я использую то же решение для пропущенных инициалов. По сути, я создаю три контейнера, один для начальной буквы (первая буква в текстовом потоке), другой для текста, плавающего вокруг, и третий для отображения текста под этими двумя. Все эти контейнеры имеют общий текстовый поток.
У меня большие проблемы с тем, чтобы заставить контроллер отображать только одну букву из потока текста, и соответственно изменить его размер, чтобы он не занимал лишнего дополнительного пространства и больше не помещал в него текст.
Использование ContainerController.getContentBounds () возвращает мне размер всего спрайта буквы (с пустыми частями всплытия / спуска), а не высоту / ширину фактической отрисованной буквы. Я использую textFlow.flowComposer.getLineAt (0) .getTextLine (). GetAtomBounds (0), но я думаю, что это все еще не правильно. Кроме того, даже если я устанавливаю контейнер для этих размеров, он иногда отображает дополнительный текст, особенно для больших шрифтов. Смотрите экран:
альтернативный текст http://img97.imageshack.us/img97/6105/tlfissue.png
Кроме того, если я установлю ширину всего на 1 пиксель меньше, чем contentBounds, все сойдет с ума, контейнеры будут перемещаться, позиционироваться с большими полями и т. Д.
Как мне решить эту проблему? Это ошибка в TLF / Player? Можно как-нибудь это исправить?
Могу ли я определить размер буквы или настроить автоконтроллер-контейнер для размера только одной буквы?