1

在我的 Flex AIR 应用程序中,我必须使用自定义箭头图标自定义组合框。我获得了更改其颜色的属性,但没有获得任何属性来更改图标本身。谷歌搜索后,我得到了一些皮肤组合框的链接,但它们是用于 FLASH CS4 的,但我在 Flex 上。

没有得到任何解决方案。请帮忙。

提前致谢。

这是代码:

<?xml version="1.0" encoding="utf-8"?><mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Style>
    ComboBox {
        up-skin :  Embed(source="Pulldown_def.png");
        down-skin : Embed(source="Pulldown_def.png");
        over-skin : Embed(source="Pulldown_def.png");       
    }
</mx:Style>
<mx:Array id="dp">
    <mx:Object label="test1" />
    <mx:Object label="test2" />
</mx:Array>
<mx:ComboBox id="cbx" x="51" y="43" dataProvider="{dp}" labelField="label" ></mx:ComboBox>

它对我不起作用:(它将图像应用于整个组合框。我需要替换箭头图像。我做错了什么吗?

4

2 回答 2

0

您可以创建自定义外观并将 ComboBox 的、 和skinstyleupSkin属性设置为该类。默认值为downSkinoverSkin ComboBoxArrowSkin

于 2010-07-20T09:48:29.893 回答
0

默认情况下,ComboBoxArrowSkin绘制整个 ComboBox。图标本身没有样式属性 - 您必须编写自己的皮肤。通读 ComboBox.as 和 ComboBoxArrowSkin.as,你会看到那里发生了什么。它很丑。我会考虑派生我自己的课程ComboBoxArrowSkin并自己调整箭头图。它发生在结束时updateDisplayList()

// Draw the triangle.
g.beginFill(arrowColor);
g.moveTo(w - 11.5, h / 2 + 3);
g.lineTo(w - 15, h / 2 - 2);
g.lineTo(w - 8, h / 2 - 2);
g.lineTo(w - 11.5, h / 2 + 3);
g.endFill();
于 2014-03-21T00:46:31.953 回答