我正在更新一个旧的项目,用Flex 3编写了一些新功能,我无法弄清楚如何做一些看似非常简单的事情。
我通过XML将数据传递给面板,并将面板的属性绑定到此XML,例如:
<mx:Panel label="{_data.@label}" title="{_data.@title}" borderColor="{_data.@borderColor}"/>
我的问题很简单:
如何使用XML中传递的数据设置面板标题和状态颜色?
您可以将titleStyleName设置为样式声明的名称,但不是titleColor或statusColor的样式。
答案 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()
}
}
} “
无论如何,谢谢你!