我有一个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>
我已应用自定义皮肤来显示图像。现在我想显示不同的图像,用于向上,向上,向下和禁用这些图像上的状态。 有没有办法做到这一点?
答案 0 :(得分:0)
您需要创建具有这些状态的自定义项呈示器并显示图像。您不需要使用数据提供程序中的图像,图像数据本身,项目渲染器将完成剩下的工作。
答案 1 :(得分:0)
您应该能够在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'},
]);
它将作为data属性传递到您的itemRenderer中,然后您可以使用它们来设置itemRenderer的样式。
由于您正在嵌入图像而不是仅仅链接到它们;你需要做的比我在上面的例子中使用的字符串略多。