可以将转换添加到使用includeIn
和excludeFrom
来显示/隐藏元素的源代码吗?似乎元素被立即隐藏,不允许有足够的时间进行过渡。
在此documentation article中,使用了visible
和includeInLayout
属性的方法,但这意味着我需要重写我宁愿避免使用的MXML代码。
答案 0 :(得分:3)
是的,Flex 4过渡适用于各州。 我认为您需要仔细查看AddAction和RemoveAction标记。 有一个由Chet Haase制作的精彩介绍视频,名为“Flex 4 States and Transitions”。 试试google吧
答案 1 :(得分:3)
是的,这正是转换的一个用例(隐藏/显示元素与状态很好)。
采用以下示例:
<s:Transition fromState="stateA" toState="stateB" autoReverse="true">
<s:Sequence>
<s:Fade targets="{[componentA]}"/>
<s:Resize targets="{[componentB]}"/>
</s:Sequence>
</s:Transition>
<s:Transition fromState="stateB" toState="stateA" autoReverse="true">
<s:Sequence>
<s:Resize targets="{[componentB]}"/>
<s:AddAction target="{componentA}"/>
<s:Fade targets="{[componentB]}"/>
</s:Sequence>
</s:Transition>
上面的示例中,componentA仅显示在stateB中,而componentB的大小调整为适应它。当从stateA转换到stateB(即componentA正在消失)时,componentA首先淡出然后调整外部容器的大小。当从stateB转换到stateA(即在componentB中添加componentA)时,首先调整componentB的大小,然后添加具有淡入效果的componentA(注意当实际添加componentA时需要指定序列中的确切点)。