0

使用 Flex 4.10 和使用IconItemRenderer的火花列表-

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

我有一个代表每周最高评分球员的列表,我想知道如何只为获胜者显示奖牌:

在此处输入图像描述

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

1 回答 1

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>

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

于 2013-08-23T13:03:41.773 回答