让Spark文本组件支持Html标签

默认下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 文本组件,视项目需要而定。

发表评论

电子邮件地址不会被公开。 必填项已用*标注