如何在flex中的组合框项目中设置不同的字体颜色

时间:2016-05-16 11:29:13

标签: flex

我在Flex中有一个ComboBox,其列表如下:

A-B-C-D-E-F

A-B-C-D-E-F-*

A-B-C-D-E-F-G-*

A-B-C-D-E-F-*

我想让*显示为红色。有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

希望自我解释:

<s:ComboBox itemRendererFunction="getItemRenderer" 
    dataProvider="{new ArrayList(['A-B-C-D-E-F', 'A-B-C-D-E-F-', 'A-B-C-D-E-F-G-', 'A-B-C-D-E-F-'])}"/>

<fx:Declarations>
    <fx:Component className="RedItemRenderer">
        <s:ItemRenderer>
            <s:HGroup verticalAlign="middle">
                <s:Label text="{data}" color="red" paddingLeft="3" paddingRight="3" paddingTop="5" paddingBottom="5"/>
                <s:Image source="@Embed(source='warning.png')"/>
            </s:HGroup>
        </s:ItemRenderer>
    </fx:Component>
</fx:Declarations>

<fx:Script><![CDATA[

    import mx.collections.ArrayList;        
    import spark.skins.spark.DefaultItemRenderer;

    private function getItemRenderer(item:Object):IFactory
    {
        var s:String = item as String;
        if (s.charAt(s.length-1) == '-')
            return new ClassFactory(RedItemRenderer);
        else
            return new ClassFactory(DefaultItemRenderer);
    }

]]></fx:Script>

这就是它的样子:

enter image description here