И вот тут, если вы уже кричали flex is awesome касательно новой концепции скинования — ждет разочарование и ненависть к Adobe. Если вы хотите сделать из чебурашки scrollbar (если кто помнит презентации Catalyst от Artemy Malkov) — вы на коне. А вот если вы хотите просто поправить одну вещь в комплексном скине, типа DropDownList — все, тихо в уголке тренируетесь. MXML полностью нивелирует все реальные ценности ООП касательно reuse — вы не можете просто отнаследоваться от и переопределить только то, что вам нужно. Если вы следили за ходом разработки flex 4, то помните, что в самом начале все было вообще возведено в абсолют (даже компилятор доработали чтобы getStyle() стал bindable), потом
opensource.adobe.com , потом была введена матрица тех минимальных стилей, которые можно поменять без перескиновки (то есть без создания своего файла, а просто изменением CSS, SparkSkin стал все более изощренным) и потом
opensource.adobe.com — "The original plan was that users would re-skin the Panel and add controls in the skin, but feedback from beta users indicate that they would like to add controls to a controlbar without having to re-skin." Дайте вашу траву, ребята, какими идиотами надо быть, чтобы изначально не понять такой очевидной вещи. Дайте вашу траву — где же та красота и идеальность изначальной концепции и почему вдруг прекрасная незнакомка оказалась шляхой — normalWithControlBar/disabledWithControlBar — что дальше? а давайте еще titleBar? Решение в новой реализации spark button с addHandlers прекрасно в плане удобства расширения, но нету в Aqua over state, равно как и нельзя смешивать состояние menuItem model on/off/mixed с состояниеми скина over/highlighted.
Нету LaF API во флексе. Чтобы отскиновать (и c должным вниманием на F) — нужно фактически все писать с нуля, полностью беря на себя всю сложность/ответственность (хотя вы поправили все 3 строчки из всего огромного mxml). В swing есть UI Delegate — можно тупо отнаследоваться от некого TabbedPaneUI и просто переопределить один метод — это не то же самое чем были скины на чистом AS в flex 3 — они были макаронами без API типа drawTabBackground(tabIndex, position, component) (то есть с ними также ООП не работало). Поэтому вся эта концеция отлично работает для RIA-приложения типа сайта, но разработчики обычных приложений остаются на самом низком абстрактном уровне.