ドロップされたイニシャル機能をFlexアプリケーションに実装しようとしています。Text Layout Frameworkはフローティングをサポートしていないため、既知の唯一の解決策は、同じテキストフローを表示して、相互にリンクされる追加のコンテナーを作成することです。これらのコンテナの幅と位置は、フロートのふりをするように設定する必要があります。
ドロップされたイニシャルに同じソリューションを使用しています。基本的に、3つのコンテナを作成しています。1つは最初の文字(テキストフローの最初の文字)用、もう1つは浮かんでいるテキスト用、3つ目はこれら2つの下にテキストを表示するためのものです。これらのコンテナはすべて、1つのテキストフローを共有します。
コントローラにテキストフローから1文字だけを表示させ、それに応じてサイズを変更することで大きな問題が発生します。これにより、不要な追加スペースが不要になり、テキストが追加されなくなります。
ContainerController.getContentBounds()を使用すると、実際にレンダリングされた文字の高さ/幅ではなく、文字のスプライト全体のサイズ(上昇/下降の空の部分を含む)が返されます。textFlow.flowComposer.getLineAt(0).getTextLine()。getAtomBounds(0)を使用していますが、それでも正しくないと思います。また、このサイズのコンテナを設定しても、特に大きなフォントの場合は、追加のテキストが表示されることがあります。画面を参照してください:
代替テキストhttp://img97.imageshack.us/img97/6105/tlfissue.png
また、幅をcontentBoundsよりもわずか1px小さく設定すると、物事がおかしくなり、コンテナが移動したり、大きなマージンを持って配置されたりします。
これをどのように解決すればよいですか?TLF / Playerのバグですか?どうにかして直せますか?文字のサイズを検出できますか、または1文字だけに収まるようにcontainercontrollerを自動サイズ設定できますか?