When defining custom states for your spark component, make sure you override getCurrentSkinState() method. You will determine skin state according to your custom and some already existing flags like enabled. Here is an example.
//----------------------------------
// States
//----------------------------------
/**
* Opened Normal State
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 1.5
* @productversion Flex 4
*/
[SkinState("openedNormal")]
/**
* Opened Disabled State
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 1.5
* @productversion Flex 4
*/
[SkinState("openedDisabled")]
/**
* Closed Normal State
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 1.5
* @productversion Flex 4
*/
[SkinState("closedNormal")]
/**
* Closed Disabled State
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 1.5
* @productversion Flex 4
*/
[SkinState("closedDisabled")]
override protected function getCurrentSkinState():String {
var state:String;
if (opened) {
state = enabled ? "openedNormal" : "openedDisabled";
} else {
state = enabled ? "closedNormal" : "closedDisabled";
}
return state;
}


