Я пытаюсь внедрить функцию отбрасывания инициалов в свое приложение 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? Можно как-нибудь исправить? Могу ли я определить размер письма или настроить автоматический размер контейнера, чтобы он поместился только в одну букву?