куда должна идти логика setStyle в переопределенных методах Itemrenderers

У меня есть следующий itemrenderer

<?xml version="1.0" encoding="utf-8"?>
<s:MXAdvancedDataGridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx"  focusEnabled="true">

<s:Label id="lblData" top="0" left="0" right="0" bottom="0" text="{listData.label}" />

<fx:Script>
    <![CDATA[
        import mx.events.FlexEvent;

        override public function set data(value:Object):void
        {
            if(value != null)
            {
                super.data = value;
                if(value.age >30 )
                    lblData.setStyle("backgroundColor","red");
                 else 
                    lblData.setStyle("backgroundColor","green"); 
            }
            //super.invalidateDisplayList();
        }

        override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
        {
            super.updateDisplayList(unscaledWidth,unscaledHeight);
            if(super.data)
            {

            }
        }
    ]]>
</fx:Script>
</s:MXAdvancedDataGridItemRenderer>

Мой вопрос: должна ли приведенная выше логика идти в updtaeDisplayList или оставаться в самом наборе данных(). Выход smae от обоих. Какова разница в влиянии на производительность, если рассматривать ее с точки зрения жизненного цикла (тяжелые вычисления следует перенести ближе к концу рендеринга кадра)


person krishma sood    schedule 04.08.2011    source источник


Ответы (1)


По-вашему, я бы предпочел использовать invalidateProperties() и commintProperties(). А как насчет использования привязки данных?

<?xml version="1.0" encoding="utf-8"?>
<s:MXAdvancedDataGridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx"  focusEnabled="true">
    <s:Label top="0" left="0" right="0" bottom="0" text="{listData.label}" backgroundColor="{data.age > 30 ? `red` : `green`}" />
</s:MXAdvancedDataGridItemRenderer>
person Constantiner    schedule 04.08.2011