flex 动画笔记

时间:2021-07-19 18:52:20

1、不涉及到组件宽度和高度变化的

如果类似showEffect等属性不好使的,直接使用hideEffect.end(); showEffect.play();等这样的用法。

2、涉及到组件宽度和高度变化的

在执行动画期间,需要把显示区域的visible设置成false。

        <s:Parallel  duration="500" id="showEffect" target="{window}" effectEnd="sEffectEnd()">
<s:children>
<s:Move xFrom="{FlexGlobals.topLevelApplication.width-50}" yFrom="50"
xTo="{FlexGlobals.topLevelApplication.width/2-375}" yTo="{FlexGlobals.topLevelApplication.height/2-275}" />
<s:Resize widthFrom="0" widthTo="750" heightFrom="0" heightTo="550"/>
</s:children>
</s:Parallel>
<s:Parallel duration="500" id="hideEffect" target="{window}" effectEnd="hEffectEnd()">
<s:children>
<s:Move xTo="{FlexGlobals.topLevelApplication.width-50}" yTo="50" />
<s:Resize widthTo="0" heightTo="0"/>
</s:children>
</s:Parallel>
            protected function basewidget1_creationCompleteHandler():void
{
content.visible=false;
hideEffect.end();
showEffect.play();
}
private function sEffectEnd():void
{
content.visible=true;
}
private function hEffectEnd():void
{
PopUpManager.removePopUp(window);
AppEvent.dispatch(AppEvent.WIDGET_CLOSE,widgetId);
}
private function closeHandler():void
{
content.visible=false;
showEffect.end();
hideEffect.play();
}