动态设置Flex Panel标题和状态颜色

时间:2011-07-01 17:47:49

标签: flex flex3

我正在更新一个旧的项目,用Flex 3编写了一些新功能,我无法弄清楚如何做一些看似非常简单的事情。

我通过XML将数据传递给面板,并将面板的属性绑定到此XML,例如:

<mx:Panel label="{_data.@label}" title="{_data.@title}" borderColor="{_data.@borderColor}"/>

我的问题很简单:

如何使用XML中传递的数据设置面板标题和状态颜色?

您可以将titleStyleName设置为样式声明的名称,但不是titleColor或statusColor的样式。

2 个答案:

答案 0 :(得分:0)

使用statusStyleName and titleStyleName指定css样式名称,然后可以指定颜色。

答案 1 :(得分:0)

感谢Jax,但这并不是我想要的答案。

例如,color和titleStylename之间的区别在于,您可以直接将颜色的css属性绑定到XML数据,例如

'颜色= {_数据。@颜色}'

但是这并没有使用titleStyleName,因为它需要设置一个新的styledeclaration。

我已经提出了一个解决方案,但是我扩展了Panel并添加了一个Bindable titleColor变量。然后,我在任何更改时设置文本框的颜色 - 见下文:

” 公共类PanelWithColorTitle扩展了Panel     {

    public function PanelWithColorTitle() 
    {

    }

    [Bindable] public var _titleColor:uint

    public function setTitleAndStatusColor():void
    {
        trace(">>PanelWithColorTitle:setTitleAndStatusColor--")
        titleTextField.setColor(_titleColor)
        statusTextField.setColor(_titleColor)

    }

    override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void 
    {
        super.updateDisplayList(unscaledWidth, unscaledHeight);
        setTitleAndStatusColor()
    }
}

} “

无论如何,谢谢你!