Flex中方法的数据绑定

时间:2010-09-27 18:07:42

标签: flex actionscript-3 flex4 flash-builder

我有以下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),它可以正常工作吗?

我需要根据此组件接收的数据更改颜色。我非常感谢你对我犯错误的任何帮助。

1 个答案:

答案 0 :(得分:1)

这里有一些奇怪的事情。首先,你的getColorItem函数应该返回一个uint而不是String。其次,为什么不从dataSet setter调用getColorItem?像这样:

public function set dataSet(value:IDataSet)
{
    _dataSet = value;
    myRichText.setStyle("color", getColorItem(_dataSet.name);
}

希望有所帮助。