title: Exposing properties to a Spark Skin class
body: <p>I am having trouble wrapping my head around the spark skin class in relation to it's host component.  Basically, from what I've seen with most every skin that comes in the Flex 4 framework they don't directly expose the properties that are dynamically being set in the host component.  Instead, they define states that get exposed to the skin class to define when a component should look different.  This is all fine and dandy when you have a very simple component with a standard set of states, but when you have twenty different properties (hypothetically) to set in your host component that should change how the skin looks it could get very complicated very fast.</p>
  
  <p>The way that I've seen that they have used to get around this is by overriding the commitproperties and invalidate functions in the skin class, grabbing the values for the properties they want from there, and then setting them to a locally instantiated variable inside the skin class.  This is fine, but I feel like that is just a patch workaround to it which makes things a lot more complicated than it needs to be.</p>
  
  <p>HERE'S MY QUESTION:
  Is there any way to directly expose a bindable property from the host component class so when you define your skin class it is directly ready to be read from?  Let's say you have custom button with a boolean property of 'selected'.  In the skin class, you want to add in a get and set function for the property 'selected' so you can perform some action upon your skin whenever it's set.  How do you tell the skin class that this is an available property for you to work with from the host component?</p>