Я хотел бы написать переход, в котором все элементы из State1 вращаются вокруг оси Y, а затем показывают элементы из State2
Это показано в фиктивном коде ниже (просто представьте, что Label 1 - это группа).
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx">
<s:states>
<s:State name="State1"/>
<s:State name="State2"/>
</s:states>
<s:transitions>
<s:Transition fromState="*" toState="State2" autoReverse="true">
<s:Rotate3D target="{label2}" angleYFrom="-90" angleYTo="0" autoCenterTransform="true" duration="1000"/>
</s:Transition>
</s:transitions>
<fx:Declarations>
<s:Rotate3D id="phaseOut" target="{label1}" angleYFrom="0" angleYTo="90" autoCenterTransform="true" duration="1000" effectEnd="currentState='State2'" />
</fx:Declarations>
<s:Label id="label1" includeIn="State1" text="This is state 1" horizontalCenter="0" verticalCenter="0"/>
<s:Label id="label2" includeIn="State2" text="This is state 2" horizontalCenter="0" verticalCenter="0"/>
<s:Button label="Change" horizontalCenter="0" verticalCenter="30" click.State1="phaseOut.play()" click.State2="currentState='State1'"/>
</s:WindowedApplication>
Моя первая проблема - когда вызывается переход состояния, все элементы из State1 уже ушли, поэтому я должен разделить переход на два хака (см. "PhaseOut")
Это кажется очень плохим, поскольку я по сути переписываю механизм перехода.
Q1: существует ли «чистый» способ перехода элементов, которые не принадлежат State2?
Вторая проблема заключается в том, что при возврате в состояние 1 элементы были повернуты.
Q2: существует ли такая вещь, как "autoReverse" для анимации?
Спасибо за ваше время!