If you have ever used the Flex introspection method describeType()
, you certainly have noticed it doesn’t output any style metadata. The only way I found so far was to instantiate the UIComponent
type I’m looking at and call the function regenerateStyleCache(false)
. The entire list of available styles is then accessible via the properties inheritingStyles
and nonInheritingStyles
. Generating the style cache is computation-intensive so like most reflection and introspection operations make effective use of it
Some code example after the jump…
- var componentClass:Class = getDefinitionByName("mx.controls.CheckBox") as Class;
- var component:UIComponent = new componentClass();
- component.regenerateStyleCache(false);
- trace(ObjectUtil.toString(component.nonInheritingStyles));
- trace(ObjectUtil.toString(component.inheritingStyles));
will output…
(Object)#0
backgroundAlpha = 1
backgroundSize = "auto"
bevel = true
borderAlpha = 1
borderCapColor = 9542041
borderColor = 12040892
borderSides = "left top right bottom"
borderSkin = (mx.skins.halo::HaloBorder)
borderStyle = "inset"
borderThickness = 1
buttonColor = 7305079
closeDuration = 250
color = 734012
cornerRadius = 4
disabledColor = 11187123
disabledIcon = (null)
disabledIconColor = 10066329
disabledSkin = (null)
downIcon = (null)
downSkin = (null)
dropShadowColor = 0
dropShadowEnabled = false
embedFonts = false
errorColor = 16711680
fillAlphas = (Array)#1
[0] 0.6
[1] 0.4
[2] 0.75
[3] 0.65
fillColor = 16777215
fillColors = (Array)#2
[0] 16777215
[1] 13421772
[2] 16777215
[3] 15658734
filled = true
focusAlpha = 0.4
focusBlendMode = "normal"
focusRoundedCorners = "tl tr bl br"
focusSkin = (mx.skins.halo::HaloFocusRect)
focusThickness = 2
fontAntiAliasType = "advanced"
fontFamily = "Verdana"
fontGridFitType = "pixel"
fontSharpness = 0
fontSize = 10
fontStyle = "normal"
fontThickness = 0
fontWeight = "normal"
highlightAlphas = (Array)#3
[0] 0.3
[1] 0
horizontalAlign = "left"
horizontalGap = 5
horizontalGridLineColor = 16250871
horizontalGridLines = false
icon = (mx.skins.halo::CheckBoxIcon)
iconColor = 2831164
indentation = 17
indicatorGap = 14
kerning = false
leading = 2
letterSpacing = 0
modalTransparency = 0.5
modalTransparencyBlur = 3
modalTransparencyColor = 14540253
modalTransparencyDuration = 100
openDuration = 250
overIcon = (null)
overSkin = (null)
paddingBottom = 2
paddingLeft = 0
paddingRight = 0
paddingTop = 2
repeatDelay = 500
repeatInterval = 35
roundedBottomCorners = true
selectedDisabledIcon = (null)
selectedDisabledSkin = (null)
selectedDownIcon = (null)
selectedDownSkin = (null)
selectedOverIcon = (null)
selectedOverSkin = (null)
selectedUpIcon = (null)
selectedUpSkin = (null)
selectionDisabledColor = 14540253
selectionDuration = 250
shadowCapColor = 14015965
shadowColor = 15658734
shadowDirection = "center"
shadowDistance = 2
skin = (null)
stroked = false
strokeWidth = 1
textAlign = "left"
textDecoration = "none"
textIndent = 0
textRollOverColor = 2831164
textSelectedColor = 2831164
themeColor = 40447
upIcon = (null)
upSkin = (null)
useRollOver = true
version = "3.0.0"
verticalAlign = "top"
verticalGap = 2
verticalGridLineColor = 14015965
verticalGridLines = true
(Object)#0
backgroundAlpha = 1
backgroundSize = "auto"
bevel = true
borderAlpha = 1
borderCapColor = 9542041
borderColor = 12040892
borderSides = "left top right bottom"
borderSkin = (mx.skins.halo::HaloBorder)
borderStyle = "inset"
borderThickness = 1
buttonColor = 7305079
closeDuration = 250
color = 734012
cornerRadius = 4
disabledColor = 11187123
disabledIcon = (null)
disabledIconColor = 10066329
disabledSkin = (null)
downIcon = (null)
downSkin = (null)
dropShadowColor = 0
dropShadowEnabled = false
embedFonts = false
errorColor = 16711680
fillAlphas = (Array)#1
[0] 0.6
[1] 0.4
[2] 0.75
[3] 0.65
fillColor = 16777215
fillColors = (Array)#2
[0] 16777215
[1] 13421772
[2] 16777215
[3] 15658734
filled = true
focusAlpha = 0.4
focusBlendMode = "normal"
focusRoundedCorners = "tl tr bl br"
focusSkin = (mx.skins.halo::HaloFocusRect)
focusThickness = 2
fontAntiAliasType = "advanced"
fontFamily = "Verdana"
fontGridFitType = "pixel"
fontSharpness = 0
fontSize = 10
fontStyle = "normal"
fontThickness = 0
fontWeight = "normal"
highlightAlphas = (Array)#3
[0] 0.3
[1] 0
horizontalAlign = "left"
horizontalGap = 5
horizontalGridLineColor = 16250871
horizontalGridLines = false
icon = (mx.skins.halo::CheckBoxIcon)
iconColor = 2831164
indentation = 17
indicatorGap = 14
kerning = false
leading = 2
letterSpacing = 0
modalTransparency = 0.5
modalTransparencyBlur = 3
modalTransparencyColor = 14540253
modalTransparencyDuration = 100
openDuration = 250
overIcon = (null)
overSkin = (null)
paddingBottom = 2
paddingLeft = 0
paddingRight = 0
paddingTop = 2
repeatDelay = 500
repeatInterval = 35
roundedBottomCorners = true
selectedDisabledIcon = (null)
selectedDisabledSkin = (null)
selectedDownIcon = (null)
selectedDownSkin = (null)
selectedOverIcon = (null)
selectedOverSkin = (null)
selectedUpIcon = (null)
selectedUpSkin = (null)
selectionDisabledColor = 14540253
selectionDuration = 250
shadowCapColor = 14015965
shadowColor = 15658734
shadowDirection = "center"
shadowDistance = 2
skin = (null)
stroked = false
strokeWidth = 1
textAlign = "left"
textDecoration = "none"
textIndent = 0
textRollOverColor = 2831164
textSelectedColor = 2831164
themeColor = 40447
upIcon = (null)
upSkin = (null)
useRollOver = true
version = "3.0.0"
verticalAlign = "top"
verticalGap = 2
verticalGridLineColor = 14015965
verticalGridLines = true