我有以下mxml(为了简洁起见省略了一些部分):
<fx:Script>
[Bindable]
private var _dataSet:IDataSet;
public function set dataSet(value:IDataSet)
{
_dataSet = value;
}
private function getColorItem(itemName:*):String
{
if (itemName == "Research") return "#31e5fc";
...
else {
trace("Unknown item : " + itemName);
return #ffffff;
}
}
</fx:Script>
<spark:RichText color="{this.getColorItem(this._dataSet.name)}" ... />
有谁知道为什么颜色没有应用?如果我改变了对方法的绑定,对于一个常量字符串(即#31e5fc),它可以正常工作吗?
我需要根据此组件接收的数据更改颜色。我非常感谢你对我犯错误的任何帮助。
答案 0 :(得分:1)
这里有一些奇怪的事情。首先,你的getColorItem函数应该返回一个uint而不是String。其次,为什么不从dataSet setter调用getColorItem?像这样:
public function set dataSet(value:IDataSet)
{
_dataSet = value;
myRichText.setStyle("color", getColorItem(_dataSet.name);
}
希望有所帮助。