flex 4 list ItemRenderer:我怎样才能有不同的行不同的itemrenderers? [英] flex 4 list ItemRenderer: how can i have different itemrenderers for different rows?

查看:158
本文介绍了flex 4 list ItemRenderer:我怎样才能有不同的行不同的itemrenderers?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在创建一个游戏的分数列表。现在大部分的列表我需要有相同的ItemRenderer。但是列表中正在播放的用户列表中的一个特定行应该显示不同的信息和不同的背景颜色。我怎样才能达到这个目的?



更新



我已经试着用状态来解决这个问题,状态,一个状态称为我的,第二个状态称为他人。

我得到的问题是,当用户点击其中一个列表行改变我donno ..点击或什么,这就是为什么我认为国家不是正确的行动对我来说。

解决方案

Flex 4附带的火花List控件允许您根据某些逻辑分配不同的itemRenderer。



您可以通过设置 itemRendererFunction 属性来创建自定义项目渲染器函数。

 < fx:Script> 
<![CDATA [
import renderers。*;

导入mx.core.ClassFactory;
import spark.skins.default.DefaultItemRenderer;

private function list_itemRendererFunc(item:Object):ClassFactory {
var cla:Class = DefaultItemRenderer;
switch(item.type){
caseemployee:
cla = EmployeeItemRenderer;
break;
casemanager:
cla = ManagerItemRenderer;
break;
默认值:
break;
}
返回新的ClassFactory(cla);
}
]]>
< / fx:Script>

< s:List id =list
labelField =name
itemRendererFunction =list_itemRendererFunc
horizo​​ntalCenter =0
verticalCenter = 0 >


I'm creating a list of scores for a game. now most of the list i need to have the same ItemRenderer. but in one specific row of the list where the user who's playing is listed, it should show different information and with different background color. how can i achieve this ?

update

I already tried to resolve the issue with states, i created 2 states, one state called 'mine' and the 2nd state called 'others'.

the problems that i got is that when users click on one of the list rows that state changes to i donno.. clicked or something and that's why i assumed that states are not the right action for me.

解决方案

The spark List control that comes with Flex 4 allows you to assign a different itemRenderer depending on some logic.

You can create a custom item renderer function by setting the itemRendererFunction property.

    <fx:Script>
    <![CDATA[
        import renderers.*;

        import mx.core.ClassFactory;
        import spark.skins.default.DefaultItemRenderer;

        private function list_itemRendererFunc(item:Object):ClassFactory {
            var cla:Class = DefaultItemRenderer;
            switch (item.type) {
                case "employee":
                    cla = EmployeeItemRenderer;
                    break;
                case "manager":
                    cla = ManagerItemRenderer;
                    break;
                default:
                    break;
            }
            return new ClassFactory(cla);
        }
    ]]>
</fx:Script>

<s:List id="list"
        labelField="name"
        itemRendererFunction="list_itemRendererFunc"
        horizontalCenter="0"
        verticalCenter="0">

这篇关于flex 4 list ItemRenderer:我怎样才能有不同的行不同的itemrenderers?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆