سؤال

لدي 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) ، فهي تعمل؟

أحتاج إلى تغيير اللون وفقًا للبيانات التي يتلقاها هذا المكون. أي مساعدة في المكان الذي أقوم فيه بخطأ هو موضع تقدير كبير.

هل كانت مفيدة؟

المحلول

لديك بعض الأشياء الغريبة هنا. أولاً ، يجب أن تُرجع وظيفة getColorItem الخاصة بك بدلاً من سلسلة. ثانياً ، لماذا لا تتصل فقط بـ GetColorItem من مجموعة البيانات الخاصة بك؟ شيء من هذا القبيل:

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

امل ان يساعد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top