1

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

相关应用程序的链接在这里查看源已启用!!

这些是过渡:

<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 仍然可靠,我会松一口气。

非常感谢。

4

1 回答 1

2

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

希望有帮助,

火焰

于 2011-10-01T17:53:08.813 回答