【问题标题】:How to apply image states in spark dropdownlist如何在火花下拉列表中应用图像状态
【发布时间】:2011-08-21 15:07:07
【问题描述】:

我有一个 spark 下拉列表,并在其上应用了自定义皮肤以在其中显示图像而不是标签。

<s:DropDownList id="id_cbLineType" 
                skinClass="assets.skins.SkinDropDownImageList"
                itemRenderer="spark.skins.spark.DefaultComplexItemRenderer"
                width="32"
                selectedIndex="0"
                borderAlpha="1"
                change="OnLineTypeChange(event)">
    <s:dataProvider>
        <s:ArrayList>
            <mx:Image source="@Embed('assets/images/mainToolbars/Straight.png')" />
            <mx:Image source="@Embed('assets/images/mainToolbars/Curved.png')" />
            <mx:Image source="@Embed('assets/images/mainToolbars/Angular.png')" />
        </s:ArrayList>
    </s:dataProvider>
</s:DropDownList>

我已应用自定义皮肤来显示图像。现在我想在这些图像上显示不同的图像以显示向上、过度、向下和禁用状态。 有什么办法吗?

【问题讨论】:

    标签: apache-flex actionscript-3 drop-down-menu skins


    【解决方案1】:

    您需要使用这些状态创建自定义项目渲染器并显示图像。您无需使用数据提供程序中的图像,图像数据本身,项目渲染器将完成剩下的工作。

    【讨论】:

      【解决方案2】:

      您应该能够在 itemRenderer 中实现 up/over/down/disabled 状态。您需要传入所有图像,因此您可能必须更改您的 dataProvider。我会在 ActionScript 而不是 MXML 中创建它。我也会使用对象而不是图像。您可以创建自己的自定义对象。

      但在概念上是这样的:

      public var dp : ArrayCollection = new ArrayCollection([
       {upImage='assets/images/mainToolbars/Straight.png',downImage=,'assets/images/mainToolbars/Straight.png',disabledImage='assets/images/mainToolbars/Straight.png',overImage='assets/images/mainToolbars/Straight.png'},
      ]);
      

      这将作为数据属性传递到您的 itemRenderer,然后您可以使用它们来设置您的 itemRenderer 的样式。

      因为您是嵌入图像而不是仅仅链接到它们;你必须做的比我在上面示例中使用的字符串稍微多一点。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-09
        • 1970-01-01
        • 2013-10-25
        • 1970-01-01
        • 2019-01-05
        • 1970-01-01
        • 2018-08-09
        • 2017-07-05
        相关资源
        最近更新 更多