繁体   English   中英

flex组合框箭头自定义图像

[英]flex combobox arrow custom image

在我的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>

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

默认情况下, 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();

您可以创建一个自定义外观并将ComboBox的skinupSkindownSkinoverSkin 样式属性设置为该类。 默认值为ComboBoxArrowSkin

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM