无论我做什么,我的过渡都不会按预期工作。我将解释这些问题,然后将代码置于底部。
我的申请中有4个州。
goButton
仅出现在"State1"
和"State2"
。
State1
和State2
几乎相同,但y
的{{1}}属性各不相同。所以我做了一个小小的过渡,让Button来回移动。好到目前为止。
但是, goButton
和"State1"
也可以转换为"State2"
。但"State3"
中没有goButton
,所以我使用了"State3"
和<s:Fade>
效果来摆脱它。
从<s:RemoveAction>
到"State1"
的转换有效确定,但从"State3"
到"State2"
的转换不会
当我尝试拨打从"State3"
到"State2"
的转换时,"State3"
闪烁/快速闪回到goButton
中的位置,只有过渡到"State1"
实际发生了。
这是我的"State3"
goButton
这些是相关的过渡:
<s:Button id="goButton" includeIn="State1,State2" x="319" y="212" width="33" height="33"
click="goButton_clickHandler()"
icon="@Embed('file:///C:/Users/Felipe/Downloads/1317358341_magnifier_medium.png')"
toolTip="go"
x.State2="319" y.State2="275"/>
我的猜测是Flex总是(不要问我为什么)在执行转换之前将组件移回其原始位置。 我尝试了此应用的不同版本,其中我将<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>
的{{1}}和x
属性设置为y
中的属性然后设置goButton
和"State2"
并猜猜会发生什么?我得到了确切的反问题!从x.State1 = something else
到y.State1 = something else
的转换是可以的,但从"State2"
到"State3"
的转换不起作用,因为"State1"
闪烁回到其原始位置(现在它是"State3"
)中的位置,然后才发生过渡。
男人这让我发疯。 的 _ __ _ __ _ __ _ __ _ __ _ __ // _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ 的 的 __ _ __ _ __ _ __ _ < / em> __ _ __ _ // _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _
修改
我添加了指向应用的链接&gt;&gt;&gt;&gt; HERE&lt;&lt;&lt;&lt;&lt;&lt;&lt; 您可以通过以下方式查看问题选择“选定标签”选项,然后单击“goButton”。你会看到我在说什么。查看源代码可用!!!
答案 0 :(得分:2)
我认为你这太复杂了。只需为按钮设置includeIn =“state1,state3”即可。无需任何添加操作。然后创建一个将goButton设置为目标的淡入淡出过渡。 Spark褪色非常聪明,可以在没有你的帮助的情况下弄清楚如何处理这种情况。
查看http://polygeek.com/2304_flex_simple-flex-4-component-checkedunchecked了解详情。
答案 1 :(得分:2)
看起来它正在为State3中的goButton寻找x,y。如果未明确设置,则会回退到默认值。添加
x.State3="{this.x}" y.State3="{this.x}"
以<s:Button id="goButton" ... />
为我修好了。
答案 2 :(得分:0)
<强>&GT;&GT;&GT; LL&LT;&LT;&LT;&LT; 强>
好的,我想我已经特别指出了这种行为,并且相信它是 BUG 或 GLITCH 。
我会看看是否有人要添加任何内容,如果没有人出现,我会提交错误报告。
重现的步骤:
创建一个按钮,它以两种不同的状态存在,位于不同的x,y坐标中。例如,您的按钮将具有x和y的值,您必须将其位置设置为其他状态,例如x.State2 = something
和y.State2=something
现在创建从State2(如果State1是您的原始状态)到名为State3的第三个状态的转换。
<s:Sequence>
步骤序列,最好是涉及RemoveActions和Fades,就像我上面使用的那样。