1

以前は、flash.text.textField オブジェクトを次のように使用していました。

tf = textField();
tf.autoWrap = true
tf.autoSize = "left"
tf.width = 100;
tf.text = "Text that is too long to fit in the textfield, so it autowraps, automatically updating the height."
addChild(tf);
someNewObject = new MovieClip();
someNewObject.y = tf.height + 5;
addchild(someNewObject);

これを行うと、someNewObject が textField のすぐ下に動的に配置されます。

これを可能にする TLF コンポーネントを探しています。

mc.core.FTETextField を使ってみました。サイズは大きく変更されますが、HTML はサポートされていません

Spark TextArea を使ってみたのですが、どうやら、heightByLines = NAN を設定する手法が機能しなくなったようです。

自動サイズ変更をサポートしているため、誰かがRichEditableTextを使用するように言っているのを見ましたが、方法がわかりません。

これは静的テキスト用です。動的テキストまたは入力テキスト用ではありません。

私はこれをコーディングしているので、何か提案があれば、MXML ではなくコードで投稿してください。

これまでの回答に感謝しますが、UITextfield は TLF コンポーネントではなく、RichText の例では RichText の高さがテキストと共に大きくなりません。

必要なのは、幅を設定し、TLF 形式のテキストを追加し、レンダリング後にコンポーネントの高さを取得できるコンポーネントです。テキストを追加するときに TextField が行うのと同じように。

リー

4

3 に答える 3

1

非常に単純です。TextFlowオブジェクトを作成するだけです。

<fx:Declarations>
<s:TextFlow id="textFlow">
    Hello, this <s:span fontWeight="bold"> is a test</s:span> of TextFlow
</s:TextFlow>
</fx:Declarations>
<s:RichText id="richText" textFlow="{textFlow}" />

ただし、textFlowはそこでFlexタグを使用します。コンバーターを使用して、実際のHTML文字列を次のようにTextFlowに変換することもできます。

<fx:Script>
    <![CDATA[
        import flashx.textLayout.conversion.ITextImporter;
        import flashx.textLayout.conversion.TextConverter;

        private const importer:ITextImporter = TextConverter.getImporter(TextConverter.TEXT_FIELD_HTML_FORMAT);
        private const htmlString:String = "Hello, this <b>is a test</b> of TextFlow";

    ]]>
</fx:Script>
<s:RichText textFlow="{importer.importToFlow(htmlString)}"/>
于 2011-03-21T19:00:36.287 に答える
0

を使用できますmx.core.UITextField。HTMLをサポートしています。ドキュメントは次のとおりです:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/core/UITextField.html

于 2011-03-21T06:50:13.187 に答える
0

RichEditableText はトリックを行いますが、autowrap の幅プロパティを明示的に設定する必要があります。私の経験上、幅を %100 に設定すると問題が発生する可能性があります (私の場合は問題が発生します)。RichEditableTextの ASDoc でかなり説明されています。

于 2011-03-27T22:39:36.360 に答える