actionscript-3 - 创建具有不可选择分隔符的组合框

标签 actionscript-3 apache-flex flex4.5 flash-builder

我想要自定义组合框。 事实上,我喜欢创建一个组合框,其中两个数组由一条线分开。

enter image description here

全部和 40 以上之间的线必须不可选择。

你知道怎么做吗?

感谢您的帮助

最佳答案

假设我们有一个具有如下模型的 ComboBox:

<s:ComboBox>
    <s:ArrayList>
        <fx:String>A</fx:String>
        <fx:Object />
        <fx:String>B</fx:String>
    </s:ArrayList>
</s:ComboBox>

字符串是我们的常规元素,对象代表分隔符。我在这里简化了事情,但您应该能够将其转化为您的具体情况。

现在我们要为每种类型的元素分配不同的 ItemRenderer。我们可以通过 itemRendererFunction 属性来做到这一点。

<s:ComboBox itemRendererFunction="getItemRenderer">

private function getItemRenderer(item:*):IFactory {
    var renderer:Class = item is String ? DefaultItemRenderer : SeparatorItemRenderer
    return new ClassFactory(renderer);
}

现在让我们创建 SeparatorItemRenderer,它将仅包含一条水平线,并将其 enabled 属性设置为 false。最后一部分非常重要,因为它会使该项目不可选择。

<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
                xmlns:s="library://ns.adobe.com/flex/spark" 
                autoDrawBackground="false" enabled="false"
                height="10" disabledAlpha="1">

    <s:Line left="0" right="0" verticalCenter="0">
        <s:stroke>
            <s:SolidColorStroke color="0xdddddd" />
        </s:stroke>
    </s:Line>

</s:ItemRenderer>

这样就可以了。

关于actionscript-3 - 创建具有不可选择分隔符的组合框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10728530/

相关文章:

ios - 使用 Tapjoy Adob​​e AIR SDK

apache-flex - 获取指定类型的所有子级,无论级别如何

java - 如何将组合框的光标设置为特定索引?

apache-flex - 如何更改 Flex 中的加载时钟

PHP套接字值得吗?

apache-flex - 使用 Flex 单击后导航到新 View

ios - Flex 4.5 Mobile - Facebook 授权

actionscript-3 - AS3 - for (... in ...) vs for each (... in ...)

用于眼睛跟踪的 Flash 库

Android App ID前缀问题