Experimenting to get the feel of states is a good idea, using states to effect things like alpha on other components is very risky , when using states this way you have to consider what happens in child components, for instance the scrollbar has a skin which doesn't involve alpha changes but parts of the scroller like thumb, background and buttons have skins that use alpha to control shading, these alpha values will always override parent settings
Another consideration is what states are there by default, with spark you very rarely get to see what states containers or components have as they are embedded in the skin.
Now if you took the scroller and put it into a container and then controlled the container alpha the scroller could never exceed that parameter even when its alpha values change.
The thing is never fight the urge to play its a wonderful process of discovery and thats where you will get the most out of learning about capabilities and limitations.
Thanks very much for the reply. I do like experimenting, and I'm loving what I can do with Flex 4. I keep thinking "I wonder if I can..." and typically I can :-)
Regarding the issue here: I can see what using states to change the alpha might result in odd things happening from your post, but I'm still not sure how to address to problem with the state 'flicker' when passing between child elements (mousing around the scroller for example causes state 'flicker' (for lack of a better phrase). Here is another example which uses a position change for the state change - no transition effect:
Example swf: http://sprymedia.co.uk/media/misc/flex4_scroll2.swf
Example mxml: http://sprymedia.co.uk/media/misc/flex4_scroll2.mxml.txt
When you pass the mouse over the elements of the scroll bar it jumps around. Obviously you would have something like this in "read life" but it shows the state issue I'm having.
I think your code here looks perfectly fine. You can use states to control the alpha value of components. The alpha that gets applied in the skin to the subcomponent will also be applied if it gets set. I think the only issue here is that instead of mouseOver/mouseOut, you should use rollOver/rollOut, which handles child components better.
Ahhh! That's it. I would never have guessed about there also being a rollOver/Out as well as a mouseOver/Out. Thanks very much that does the trick perfectly!