2010-07-20 7 views
1

Dans mon application Flex AIR, je dois personnaliser le Combobox avec une icône de flèche personnalisée. J'ai eu les propriétés pour changer sa couleur mais n'ai pas eu la propriété de changer l'icône elle-même. Après googling j'ai eu quelques liens de skinning la combobox mais ils étaient pour FLASH CS4, mais je suis sur Flex.flex combobox arrow image personnalisée

N'obtenez aucune solution. S'il vous plaît aider.

Merci d'avance.

Voici le code:.

<?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> 

Il ne fonctionne pas pour moi :( Il applique l'image sur Combobox ensemble, je dois remplacer l'image flèche Est-ce que je fais quoi que ce soit. mal?

Répondre

0

Vous pouvez créer un habillage personnalisé et définissez le skin, upSkin, downSkin et overSkinstyle attributes du ComboB boeuf à cette classe. La valeur par défaut est ComboBoxArrowSkin

+0

Veuillez vous référer au code ajouté. Dites-moi où je me trompe? – gauravgr8

0

Par défaut, ComboBoxArrowSkin dessine l'ENTIER COMBOBox. Il n'y a pas d'attribut de style pour l'icône elle-même - vous devrez écrire votre propre skin. Lisez ComboBox.as et ComboBoxArrowSkin.as et vous verrez ce qui se passe là-bas. C'est moche. Je considérerais dérivant ma propre classe de ComboBoxArrowSkin et peaufinant la flèche vous dessinant. Il se passe à la fin de 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();