0

フレックス 4 での作業

私は変数を持っています:

[Bindable]
public var visibility:Boolean = true;

これらの効果:

<fx:Declarations>
    <mx:Fade id="fadeOut" duration="800" alphaFrom="1.0" alphaTo="0.0"/>
    <mx:Fade id="fadeIn" duration="800" alphaFrom="0.0" alphaTo="1.0"/>
</fx:Declarations>

および次のコンポーネント:

<s:HGroup visible="{visibility}" showEffect="fadeIn" hideEffect="fadeOut">
    ...bunch of stuff...
</s:HGroup>

私は、マウスが動いているときはいつでもvisibility=trueにし、マウスが4秒間動きを止めるたびにfalseに設定するようにアプリケーションを設定しています。「フェードアウト」のアニメーション中にマウスが移動する場合を除いて、すべてが期待どおりに機能します(つまり、要素のアルファが〜0.5のときにマウスを移動します)これが発生した後、マウスを移動する前にさらに 4 秒待つ必要があります。その後、可視性が戻ります。

私がチェックしたところ、アニメーション中にマウスが移動すると(そしてその直後でも、可視性が戻らない場合でも)「可視性」の値がtrueに戻ります...だから、何かがあると仮定していますFlex がアニメーション中にバインドされた変数や可視性の状態をどのように更新するかについて、具体的で奇妙です。

誰にもアイデアはありますか?

4

1 に答える 1

0

最後に役立つものを見つけました:

エフェクトには、このような状況に対処するのに役立ついくつかの機能があります。主に

Effect.pause()
Effect.reverse()
Effect.stop()
Effect.resume()

Flex 4 では、これらの動作がおかしくなっているようです。アニメーションの最後を除いて、fadeOut.reverse() を実際に実行してみましたが、オブジェクトはまだ非表示になりました... bleh

何らかの理由で、fadeOut.stop() を呼び出すと、探していることが実行されますが、適切な解決策は、autoReverse 属性が現在フェードしている項目に設定された状態遷移を使用することです。その後、アニメーションの途中で状態が切り替わると、Flex が適切に処理します。

自動反転による状態遷移の例については、これをチェックしてください: http://graphics-geek.blogspot.com/2010/01/video-auto-reversing-transitions-in.html

于 2010-10-12T02:35:34.920 に答える