куда должна идти логика setStyle в избыточных методах Itemrenderers - PullRequest
0 голосов
/ 04 августа 2011

У меня есть следующий 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 или оставаться в самой set data ().Вывод smae от обоих.Какая разница в влиянии на производительность, если мы рассмотрим ее с точки зрения жизненного цикла (тяжелые вычисления следует перенести в конец рендеринга кадра)

1 Ответ

2 голосов
/ 04 августа 2011

По-вашему, я бы лучше использовал 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>
...