гибкий эффект на видимом событии - PullRequest
0 голосов
/ 25 января 2012

Я хотел бы создать компонент, который применяет эффект изменения размера, когда он виден:

Я сделал это:

<s:Panel id="loginPanel" title="Connect" creationCompleteEffect="customResize" 
                             showEffect="customResize" hideEffect="fadeOut"
                             width="400" height="300" includeIn="login">

с:

    <fx:Declarations>
            <!--  Effects declaration  -->
            <s:Fade id="fadeIn" alphaFrom="0.0" alphaTo="1.0" duration="500"/>
            <s:Fade id="fadeOut" alphaFrom="1.0" alphaTo="0.0" duration="500"/>
            <s:Animate id="customResize" duration="1000">
                <s:SimpleMotionPath property="percentWidth" valueFrom="0" valueTo="100"/>
                <s:SimpleMotionPath property="percentHeight" valueFrom="0" valueTo="100"/>
            </s:Animate>
        </fx:Declarations>

Проблема в том, что когда компонент отображается в первый раз, эффект корректно воспроизводится, но когда состояние меняется, например, с «вход в систему» ​​на «работает», а затем обратно на «вход», эффект не воспроизводится больше.

Я думал, что событие видимости было бы отправлено и применен showEffect, но кажется, что изменения состояния не работают так, как я ожидал.

Как применить эффект каждый раз, когда компонент виден?

1 Ответ

0 голосов
/ 25 января 2012

вы уверены, что штаты переключают видимое свойство?
Попробуйте принудительно изменить свойство Visible:

<s:Fade id="fadeIn" alphaFrom="0.0" alphaTo="1.0" duration="500" effectStart="loginPanel.visible = true"/>

<s:Fade id="fadeOut" alphaFrom="1.0" alphaTo="0.0" duration="500" effectEnd="loginPanel.visible = false"/>
...