2010-09-27 25 views
1
從方法結合

我有以下MXML(略去了一些目的部分):數據Flex中

<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

這裏有幾件奇怪的事情。首先,你的getColorItem函數應該返回一個uint而不是一個String。其次,爲什麼不直接從你的dataSet setter調用getColorItem?像這樣的東西:

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

希望有所幫助。

+0

我只是想出了我的錯誤。我忘記爲RichText設置一個ID。謝謝! – dornad 2010-09-27 18:35:20