默认下Spark 文本组件是不支持Html标签的,但我们可以使用TextConverter类中的importToFlow()方法解决这个问题。
看下面代码:
package controls { import flashx.textLayout.conversion.TextConverter; import flashx.textLayout.elements.TextFlow; import spark.components.RichText; public class RichHtmlText extends RichText { public function RichHtmlText() { super(); } private var _htmlText:String public function get htmlText():String { return _htmlText; } public function set htmlText(value:String):void { _htmlText = value; var tf:TextFlow = TextConverter.importToFlow(value, TextConverter.TEXT_FIELD_HTML_FORMAT); this.textFlow = tf; } } }
上面代码中,我们使用importToFlow()方法,基于Html格式的文本创建了TextFlow实例,再将该实例指定为该文本的TextFlow对象,从而扩展了RichText 类,使其支持支持Html标签。该自定义类用法很简单,将Html文本赋值给htmlText属性即可,和MX文本组件的用法类似。
如果要支持Html标签,Adobe建议使用MX文本组件,因为它们比Spark文本组件轻量,但MX文本组件不支持Text Layout Framework (TLF)中的新特性。因此是使用MX文本组件还是本文中扩展的Spark 文本组件,视项目需要而定。