If my understanding of Flex is correct, skins in Flex are just DisplayObjects that are added as children to UIComponents to create the visual representation of the object. But if my understanding of the Flash event model is correct, if there is a non-transparent DisplayObject on top of another, mouse events will go to the topmost DisplayObject. The overlapped DisplayObject won’t receive any mouse input.
So how is it that skinned Flex UIComponents work at all?
This page has a pretty good explanation of the eventing mechanism in Flex:
http://livedocs.adobe.com/flex/3/html/help.html?content=events_08.html
The key I believe is that MouseEvents will bubble by default. Since the skin elements are added as children of a component’s display list (in “rawChildren”) the event will still bubble up to the parent.