Есть приложение:

Код:
<s:Application ...>
<fx:Script>
<![CDATA[
...
currentState = "state1";
....
]]>
</fx:Script>
<someContainer>
<project.views:View1 id="view1" includeIn="state1"/>
<project.views:View2 id="view2" includeIn="state2"/>
</someContainer>
<s:states>
<s:State name="state1"/>
<s:State name="state2"/>
</s:states>
</s:Application>
Если в View1 я хочу перейти в View2, то приходится делать следующее (часть View1):

Код:
...
<s:Button label="toView2" click="FlexGlobals.topLevelApplication.currentState = 'state2'"/>
...
Что-то терзают меня смутные сомнения, что я что-то делаю не так. Так как все работает как хотелось бы, то это всего лишь подозрения. Я так понимаю, что правильнее было диспатчить события выше по структуре для изменения состояния. Но как быть, если мне надо сделать разделение сотояния не на самом верхнем уровне, а в одном из "окон" (представлении)? - Ведь состояния - привилегия приложения (верхнего уровня).
И второй вопрос - относительно переходов между состояниями. Доки в инете по transitions навалом, но ответ на свой вопрос я нашел только в искаженном виде.
Допустим, я хочу, чтобы приложение из состояния state1 в состояние state2 переходило путем "исчезания" элементов первого и "появления" второго. Если сделать банально

Код:
<s:Transition fromState="state1" toState="state2">
<s:Fade target="{view1}" alphaFrom="1" alphaTo="0" duration="600"/>
<s:Fade target="{view2}" alphaFrom="0" alphaTo="1" duration="600"/>
</s:Transition>
(неважно, что мы будет использовать - Sequence, Parallel или другое), мы не увидим действий над элементами из состояния "fromState" - только из "toState".
Решение извращенное:

Код:
<s:State name="state1Tostate2"/>
...
<s:Transition fromState="state1" toState="state1Tostate2">
<s:Fade target="{view1}" alphaFrom="1" alphaTo="0" effectEnd="currentState = 'state2'"/>
</s:Transition>
<s:Transition fromState="*" toState="state2">
<s:Fade target="{view2}" alphaFrom="0" alphaTo="1"/>
</s:Transition>
Будь в приложении пару окон, проблем бы не было - можно и поизвращаться. А если окон очень много, как быть? Что-то не могу пока придумать какого-то автоматизированного способа по смене состояний.
Буду признателен за советы в отношении этих двух вопросов.