Animation 在fx动画中,flex绑定的可见性会出错

Animation 在fx动画中,flex绑定的可见性会出错,animation,flex4,bindable,Animation,Flex4,Bindable,在Flex4中工作 我有一个变量: [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"/

在Flex4中工作

我有一个变量:

[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。除了在淡出动画期间鼠标移动时(换句话说,当元素的alpha值为~0.5时,我移动鼠标),所有操作都按预期进行。发生这种情况后,我需要在移动鼠标之前再等待4秒钟,然后可见性将恢复

我已经检查过了,当鼠标在动画中移动时,“可见性”的值确实会被设置回true(甚至在之后立即,即使它不会导致可见性返回)。。。因此,我假设Flex在动画期间如何更新绑定变量和/或可见性状态有一些特定而奇怪的地方


有人有什么想法吗?

终于找到了一些有用的方法:

特效有一些功能可以帮助您处理此类情况。主要是

Effect.pause()
Effect.reverse()
Effect.stop()
Effect.resume()
在Flex4中,这些东西似乎有奇怪的行为。我试着做了fadeOut.reverse(),它实际上做了你所期望的,除了在动画结束时,对象仍然是不可见的。。。呜呜

出于某种原因,调用fadeOut.stop()可以实现我所寻找的功能,但是合适的解决方案似乎是使用状态转换,并将“自动反转”属性设置为当前淡入淡出的项。然后,当你的状态切换到动画的中间时,Flex将优雅地处理它。p> 有关自动反转状态转换的示例,请查看以下内容: