0

我对如何获得这个感到困惑..所以当有人加入时我有一个用户列表将他们添加到列表(他们的用户名)我有办法找出他们是否是管理员我只需要知道我怎么能更改该列表中每个用户的颜色......这是一个例子......

如果列表支持 html,这将正常工作

onlineUsers.addItem({label:"<font color='$ffffff'>users[i].userName+"_GUEST</font>",id:users[i].userID,guest:"True"});
userList.dataProvider = onlineUsers

但是列表不支持 html,有人知道解决方法吗?

4

1 回答 1

0

通常,您的答案是使用 itemRenderer。

列表类所做的只是显示其他组件(渲染器)并将这些组件的数据从 dataProvider 发送到显示。真的,您的意思是默认 itemRenderer 不支持 HTML。从技术上讲,您可以制作一个支持 HTML 的 itemRenderer,为您提供所需的颜色更改;但我会采取不同的方式。

向用户对象添加一个属性,指定他们是否是管理员用户。然后 iF 用户是管理员用户;然后; 改变颜色。概念上是这样的:

<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:mx="library://ns.adobe.com/flex/mx" 
    xmlns:s="library://ns.adobe.com/flex/spark"
    autoDrawBackground="false" dataChange="onDataChange()">

    <fx:Script>
        <![CDATA[
            public function onDataChange():void{
               labelDisplay.text = data.userName + "_Guest";
               if(data.isAdmin){
                 labelDisplay.setStyle('color',0xff0000);
               } else {
                 labelDisplay.setStyle('color',0x00FF00);
               }
            }
        ]]>
    </fx:Script>

    <s:Label id="labelDisplay" 
        /> 
</s:ItemRenderer>
于 2013-08-19T21:40:48.543 回答