在flex 3中,需要将复选框标签的一部分加粗



在flex 3中,如何使复选框标签的一部分为粗体?假设复选框标签是"记住数据网格上的值"。需要将文本"datagrid"单独加粗。有人能帮忙吗。提前谢谢。

这不是一个完美的解决方案,但它会让你开始。如果扩展CheckBox类,则可以覆盖updateDisplayList()方法,并使用其htmlText属性设置复选框的标签。

然后使用这个自定义复选框并传入一个带有HTML的标签。

此解决方案的问题:

  • 超级类没有测量HTML格式的文本(您可以实现measure()Flex生命周期方法)
  • 在super.updateDisplayList()完成所有工作后,我们使用htmlText属性来撤消它

HTML文本复选框.as:

package
{
    import mx.controls.CheckBox;
    public class HtmlTextCheckBox extends CheckBox
    {
        public function HtmlTextCheckBox()
        {
            super();
        }
        override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
        {
            super.updateDisplayList(unscaledWidth, unscaledHeight);
            textField.htmlText = label;
        }
    }
}

使用它MXML:

<local:HtmlTextCheckBox label="this is the &lt;b&gt;bold part&lt;/b&gt;"/>

或者在AS3:中

var cb:HtmlTextCheckBox = new HtmlTextCheckBox();
cb.text = "this is the <b>bold part</b>";

最新更新