Posts Tagged ComboBox
Skinning the ComboBox Flash component
Posted by zedia.net in ActionScript 3 on February 17th, 2010
This post is more for me because I keep forgetting how to do this. For my defense I have to say that it is not exactly the first thing that comes to mind when you are trying to change the font in the ComboBox component, but at least I won’t have to remember in which project I did it; I’ll just turn to my friend Google and type : comboBox + zedia.
Editing the visual is mostly easy inside of flash but my main problem is always the fonts. In a previous post I talked about fonts in Flash in general, this one will use that as a base and apply it to the ComboBox. Here is the code to change the font in the textfield and the dropping list:
var myFormatWhite:TextFormat = new TextFormat(); myFormatWhite.font = "DFC GillSansLight"; myFormatWhite.size = 15; myFormatWhite.color = 0xffffff; var myFormatBeige:TextFormat = new TextFormat(); myFormatBeige.font = "DFC GillSansLight"; myFormatBeige.size = 14; myFormatBeige.color = 0xa18c52; comboBox.textField.setStyle("embedFonts", true); comboBox.textField.setStyle("textFormat", myFormatWhite);< comboBox.dropdown.setRendererStyle("embedFonts", true); comboBox.dropdown.setRendererStyle("textFormat", myFormatBeige); comboBox.prompt = "Province"; //default value that won't show in the dropdown comboBox.addItem( { label:"New Brunswick", data:"New Brunswick" } ); comboBox.addItem( { label:"Nova Scotia", data:"Nova Scotia" } ); comboBox.addItem( { label:"Ontario", data:"Ontario" } ); comboBox.addItem( { label:"Prince Edward Island", data:"Prince Edward Island" } );
My problem was mostly with the setRendererStyle method; not that obvious. I also put the code for adding items in the ComboBox and to have a default text in it that doesn’t show in the dropdown. Now the next bit of code if to check, when you used ComboBox.prompt, if something was selected:
if (comboBox.selectedIndex == -1) { //show error message because comboBox wasn't changed }
P.S. all this code assumes that I have dragged the component to the stage in the Flash IDE


