2010-11-20 13 views
0

TLFを使用して辞書エントリをレイアウトしています。それはかなりうまくいっていますが、私は、主に水平間隔とSpanElements上のパディングを親から独立して設定するために、FlowElementsのスタイルプロパティを設定することでより細かくレイアウトを制御する必要があります。TLF - 複数のコンテナと改行によるテキストの流れ

最も有望な解決策は、エントリーのさまざまな要素を別々のコンテナに分割し、サイズがコンテンツ境界に設定された新しい要素ごとに新しいコンテナとContainerControllerを徐々に追加してテキストを流すことです。それぞれの新しい容器に流入する。

このALMOST動作しますが、余分な改行が異なるコンテナに行くべきテキストの二つのセクションの間に挿入された場合は、テキストのみが次のコンテナに正常に流れます。改行がなければ、コンテナのサイズは正しく設定されますが、テキストは表示されません。彼らは描画されている場所あなたが見ることができますので、私は、コンテナのスプライトに境界線を追加したこれらの例では

。改行を除いて、テキストはまったく同じです。音節フィールドは、ParagraphElement内のSpanElementです。発音ラベルとテキストは別のParagraphElement内の別々のSpanElementsです。改行なし

: 'RABビット' と '音のように:':の間に改行して

no line break

'RAEのbiht' の後に改行して

1 break

(改行はあらかじめ効果がありません):

2 breaks

ご覧のとおり、改行がテキストの後に追加されない限り、発音は表示されませんが、整列はオフになります。改行を組み合わせても正しく改行されていないようです。

アイデア?これらのバグはTLFにありますか?私は別の方法を試すべきですか?私は本当にすべてのテキストを1つの単位として選択したいと思っています。TLFが提供するより優れたレンダリングとコントロールが大好きですが、レイアウトの柔軟性も必要です。私は、改行や位置オフセットを使ってこのように一緒に何かをハックする可能性はあると思いますが、それは確かにきれいではありません。読んでくれてありがとう。

答えて

1

私はAdobe Cookbooksのレシピを書きましたが、これはあなたに役立つかもしれません。基本的に、私は、主にコンテナコントローラに焦点を当てるために、スパンと段落要素を完全に使用することを忘れてしまいました。それが役に立てば幸い:

Generating a formatted TextFlow Layout for plain text assets


更新

ダイナミックコンテナに、あなたはおそらく、それの文字列の長さと一緒に、あなたのターゲット文字列を決定するためにフォントサイズをラインデリミタの終わりを使用することができます、パディングなど、あなたは、コンテナのために必要なサイズを見つけて、それに応じて呼び出すことで、あなたのコンテナのサイズを変更することができます:ここに

targetFlow.flowComposer.getControllerAt(controllerIndex).getContentBounds().width; 

//and/or 

targetFlow.flowComposer.getControllerAt(controllerIndex).getContentBounds().height; 

は自動的にそのコンテナの内部に収まるようにテキストフローのフォントサイズを変更し、私が書いた別のレシピです。 Automating font size for TextFlow containers

私が行ったようにフォントサイズを変更する代わりに、あなたのテキストに合わせてコンテナのサイズを変更することができます。

こちらがお役に立てば幸いです。

+0

@ TheDarkInl1978これは素晴らしい記事です。リンクありがとう。しかし、私はあなたの例と私がやろうとしている主な違いは、動的コンテナのサイジングと固定されていると考えています。記事では、いくつかのコンテナを一定の大きさにレイアウトしてから、それらにテキストを流し込みます。これはかなりうまくいくようです。しかし、私がしたいのは、テキストの特定の可変長部分を、対応する独立した適切なサイズのコンテナに制限することです。あなたはこの作業にあなたのアプローチを適応させることについて考えていますか?ありがとう。もちろん、 – Dane

+0

です。私は私の答えを更新しました。 – TheDarkIn1978

+0

@ TheDarkInl1978更新していただきありがとうございます。これは私が上でやろうとしたことと似ていますが、わかるように、テキストがコンテナからコンテナにどのように流れているか、多くの不一致がありました。 FlowElementsを追加するのではなく、プレーンテキストの文字列を作成することでこれを行うべきですか?私は、コンテナのサイズを確立するためにテキストの各セクション(プレーンテキストとして)に独立したTextFlowを作成してから、すべてのコンテナを完全なTextFlowにリンクすることを試してみてください。非効率的だと思われますが、試してみる価値があります。 – Dane

関連する問題