来自Adobe Flex Transitions的有趣行为 - 可能的错误

时间:2011-10-01 03:40:00

标签: flex mxml flex4.5 transitions

我想我刚刚在 flex 4.5 中发现了明显的错误

相关应用程序的链接是 here 查看源已启用!!

这些是过渡:

<s:states>
    <s:State name="State1"/>
    <s:State name="State2"/>
    <s:State name="State3"/>
</s:states>

<s:transitions>

    <s:Transition fromState="State1" toState="State2" autoReverse="true" >
        <s:Sequence>
            <s:Move duration="500" target="{goButton}"/>
            <s:AddAction targets="{[tagsLabel,tagsTextInput]}"/>
            <s:Fade targets="{[tagsLabel,tagsTextInput]}" duration="500" />
        </s:Sequence>
    </s:Transition>

    <s:Transition fromState="State1" toState="State3" >
        <s:Sequence>
            <s:RemoveAction targets="{[searchLabel,searchTextInput,inLabel,inDropDownList]}" />
            <s:Move duration="500" target="{goButton}" />
            <s:AddAction target="{lessonsDataGrid}" />
        </s:Sequence>
    </s:Transition>


    <s:Transition fromState="State2" toState="State3" >
        <s:Sequence>
            <s:RemoveAction targets="{[searchLabel,searchTextInput,inLabel,inDropDownList,tagsLabel,tagsTextInput]}" />
            <s:Move duration="500" target="{goButton}" />
            <s:AddAction target="{lessonsDataGrid}" />
        </s:Sequence>
    </s:Transition>

    <s:Transition fromState="State3" toState="State1" >
        <s:Sequence>
            <s:RemoveAction target="{lessonsDataGrid}" />
            <s:Move target="{goButton}" duration="500" />
            <s:AddAction targets="{[searchLabel,searchTextInput,inLabel,inDropDownList]}" />
        </s:Sequence>
    </s:Transition>

</s:transitions>

你看我在这里与Transitions有点合作;一个转换在DropDownList indexChangeEvent上激活,另一个转换由放大镜clickEvent上的Button触发。

我面临的问题如下:

如果我点击'放大镜'Button 三次,(快速连续3次,但只需点击1次,等待过渡,再次点击,等待过渡,最后点击)然后我得到了一些有趣的行为:放大镜Button消失了,即使我从未让它在过渡中消失;那应该消失的TextInput没有;它在State3中以某种方式得到卡住,这是其中Datagrid的状态。

相信我,我在这篇文章中花了至少 4小时并重写了这些过渡,我在网上尝试了各种各样的东西,但无济于事。

希望有人能提供帮助,我不愿意接受Flex有错误。我很高兴知道这是我做错了,Flex仍然可靠。

非常感谢。

1 个答案:

答案 0 :(得分:2)

我已经玩过一段时间了。注意到由于某种原因在更改状态时,其中一个AddItems覆盖会从Border容器中删除索引为0的元素(如果将removeFromStage事件的处理程序添加到goButton,则可以自行调试和查看)。我还在调查这个问题,但我有一个快速解决方法。只需在所有三种状态中包含goButton:includeIn =&#34; State1,State2,State3&#34;它不会消失:] 如果我找到我发布给你的原因。

希望有所帮助,

火焰