【问题标题】:Flex 4.1 RichText/RichEditableText autosizingFlex 4.1 RichText/RichEditableText 自动调整大小
【发布时间】:2011-03-21 06:40:12
【问题描述】:

过去,我使用类似这样的 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 一样。

【问题讨论】:

    标签: apache-flex autosize


    【解决方案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)}"/>
    

    【讨论】:

      【解决方案2】:

      您可以使用mx.core.UITextField。它支持 HTML。这是文档:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/core/UITextField.html

      【讨论】:

      • 感谢您的回答。但是,UITextfield 不是 TLF 组件,RichText 的第一个示例不会自动构建组件的高度。
      【解决方案3】:

      RichEditableText 可以解决问题,但是您必须明确设置自动换行的宽度属性。根据我的经验,如果将宽度设置为 %100,可能会导致一些问题(对我来说会导致一些问题),因此我建议您明确设置宽度值以确保自动换行。 RichEditableText 的 ASDoc 解释了很多。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-11
        • 1970-01-01
        • 2011-03-14
        • 2011-06-25
        相关资源
        最近更新 更多