IconItemRenderer:如何仅为某些List项显示装饰器?

时间:2013-08-23 12:17:36

标签: flex flex4 itemrenderer flex-mobile flex4.10

使用Flex 4.10和使用IconItemRenderer -

的spark列表

是否可以仅为某些列表项显示装饰器图像?

我有一个列表代表每周最高评级的玩家,并想知道如何仅为获奖者展示奖牌:

enter image description here

<fx:Declarations>
    <s:MultiDPIBitmapSource id="MEDAL"
        source160dpi="@Embed('assets/icons/160/medal-gold.png')"
        source240dpi="@Embed('assets/icons/240/medal-gold.png')"
        source320dpi="@Embed('assets/icons/320/medal-gold.png')"
        source480dpi="@Embed('assets/icons/480/medal-gold.png')" />

    <s:ArrayCollection id="_ac" />
</fx:Declarations>


<s:List id="_list"
        width="100%" 
        height="100%" 
        dataProvider="{_ac}" 
        change="handleChange(event)">
    <s:itemRenderer>
        <fx:Component>
            <s:IconItemRenderer 
                iconField="avatar" 
                messageField="city" 
                decorator="{outerDocument.MEDAL}"
                iconFunction="{outerDocument.iconFunc}" 
                labelFunction="{outerDocument.labelFunc}" />
        </fx:Component>
    </s:itemRenderer>
</s:List>

1 个答案:

答案 0 :(得分:1)

简短的回答是在数据更改函数中将装饰器设置为null。

更长的答案:

<s:IconItemRenderer 
                iconField="avatar" 
                messageField="city" 
                decorator="{outerDocument.MEDAL}"
                iconFunction="{outerDocument.iconFunc}" 
                labelFunction="{outerDocument.labelFunc}"                   
                dataChange="onDataChange(event)" >
    <fx:Script>
        <![CDATA[

            import mx.events.FlexEvent;

            public var statManager :StatManager = StatManager.instance;     

            protected function onDataChange(event:FlexEvent):void
            {
                if(SomeConditionThatDeterminesThatDecoratorShouldBeDisplayed){
                    this.decorator = outerDocument.MEDAL;
                } else {
                    this.decorator = null;
                }
            }

        ]]>
    </fx:Script>

</s:IconItemRenderer>

我在手机游戏中使用相同的方法。