ke mana logika setStyle harus dimasukkan dalam metode Itemrenderer yang diganti

Saya telah mengikuti 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>

Pertanyaan saya adalah Haruskah logika di atas masuk ke updtaeDisplayList atau tetap di set data() itu sendiri. Outputnya kecil dari keduanya. Apa perbedaan dampak kinerja jika kita mempertimbangkannya dari perspektif siklus hidup. (Perhitungan berat harus didorong menjelang akhir rendering frame)


person krishma sood    schedule 04.08.2011    source sumber


Jawaban (1)


Menurut Anda, saya lebih suka menggunakan invalidateProperties() dan commintProperties(). Tapi bagaimana dengan menggunakan data binding?

<?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