Apache flex AdobeFlexTransitions的有趣行为(2)

Apache flex AdobeFlexTransitions的有趣行为(2),apache-flex,flex4,transition,transitions,Apache Flex,Flex4,Transition,Transitions,无论我做什么,我的转换都不会像预期的那样工作。我将解释这些问题,然后将代码放在底部 我的应用程序中有4个状态 goButton仅在“State1”和“State2”中出现 State1和State2几乎相同,但是goButton的y属性在每种情况下都不同。所以我做了一个小转变,前后移动按钮。到目前为止还不错 但是,也可以将“State1”和“State2”转换为“State3”。但是在“State3”中没有goButton,所以我使用了和效果来消除它 从“State1”到“State3”的转换工

无论我做什么,我的转换都不会像预期的那样工作。我将解释这些问题,然后将代码放在底部

我的应用程序中有4个状态

goButton
仅在
“State1”
“State2”
中出现

State1
State2
几乎相同,但是
goButton
y
属性在每种情况下都不同。所以我做了一个小转变,前后移动按钮。到目前为止还不错

但是,也可以将
“State1”
“State2”
转换为
“State3”
。但是在
“State3”
中没有
goButton
,所以我使用了
效果来消除它

“State1”
“State3”
的转换工作正常,但从
“State2”
“State3”的转换不起作用

当我尝试调用从
“State2”
“State3”
的转换时,
goButton
闪烁/快速返回到它位于
“State1”
的位置,并且只有转换到
“State3”
的转换实际发生

这是我的
goButton

这些是相关的转变:

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

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

我的猜测是Flex总是(不要问我为什么)在执行转换之前将组件移回其原始位置我尝试了这个应用程序的另一个版本,在这个版本中,我将我的
goButton
x
y
属性设置为
“State2”
中的属性,然后设置
x.State1=其他东西
y.State1=其他东西
,猜猜会发生什么?我得到了精确的反问题!从
“State2”
“State3”
的转换是正常的,但是从
“State1”
“State3”
的转换不起作用,因为
goButton
闪烁回到其原始位置(现在是
“State2”
中的位置),然后才发生转换

伙计,这让我快疯了。 \Uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu \Uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

编辑


我已经添加了一个应用程序的链接>>>我觉得你把这个问题弄得太复杂了。只需为按钮设置includeIn=“state1,state3”。不需要任何添加操作。然后创建一个淡入淡出过渡,将goButton设置为其目标。Spark fade足够聪明,可以在不需要您进一步帮助的情况下找出如何处理这种情况


查看更多详细信息。

我认为你把事情弄得太复杂了。只需为按钮设置includeIn=“state1,state3”。不需要任何添加操作。然后创建一个淡入淡出过渡,将goButton设置为其目标。Spark fade足够聪明,可以在不需要您进一步帮助的情况下找出如何处理这种情况


查看以了解更多详细信息。

>LL>LL看起来它正在为状态3中的goButton查找x,y。如果不显式设置,它将返回默认值。添加

x.State3="{this.x}" y.State3="{this.x}"

为了
为我修复了它。

它看起来像是在为State3中的goButton寻找一个x,y。如果不显式设置,它将返回默认值。添加

x.State3="{this.x}" y.State3="{this.x}"

为了
为我修复了它。

状态3正是我不希望按钮包含在其中的状态。。。。我知道它可能更简单,但它仍然应该按原样工作。那么,在state1、state2、x.state1和y.state1中设置includeIn,等等。我真的需要addAction和removeAction。。。如果没有它,我不能按我想要的方式进行。状态3正是我不希望按钮包含在其中的状态。。。。我知道它可能更简单,但它仍然应该按原样工作。那么,在state1、state2、x.state1和y.state1中设置includeIn,等等。我真的需要addAction和removeAction。。。没有它,我不能按我想要的方式进行。它做了第一次测试,看起来很有效。如果每次都能成功的话,你就是我的官方英雄,我已经为此奋斗了5天多了。你怎么知道的?恐怕没有秘密的方法。只是玩一会儿而已。有一个到应用程序和源代码的链接肯定很有帮助,但问题中没有一堵代码墙。它做了第一次测试,看起来很有效。如果每次都能成功的话,你就是我的官方英雄,我已经为此奋斗了5天多了。你怎么知道的?恐怕没有秘密的方法。只是玩一会儿而已。有一个指向应用程序和源代码的链接,而不必在问题中设置代码墙,这无疑是很有帮助的。