0

我第一次从状态 A 更改为 B 时,它不会播放过渡。在第一次转换之后,相同的状态变化确实会播放转换。

在我让状态 B 加载之前,它会解析一个 xml 文件并将其映射到对象。完成后,状态会发生变化。也许它与xml的解析有关。但我可以确认解析已经完成,在它改变状态之前。

<s:Transition toState="B">
    <s:Sequence>
         <s:Move target="{menu}" duration="300" />
         <s:AddAction target="{newsPostsList}" />
         <s:Fade target="{newsPostsList}" />
    </s:Sequence>
</s:Transition>
4

6 回答 6

1

您需要查看状态中包含的组件的 creationPolicy。默认情况下它是未实例化的。creationPolicy ="all" 可以添加到 addChild 元素中,或者在我的情况下,添加到视图堆栈中 - 我在尝试解决这个问题时浪费了几个小时。现在一切顺利。

于 2011-11-23T07:11:33.860 回答
0

事实证明,我必须摆脱“includeIn=myState”并用“visible.myState=true”和“includeInLayout.myState=true”替换它们。它使转换每次都运行。

于 2010-07-13T09:01:32.693 回答
0

我也有同样的问题。我在过渡中使用了“淡入淡出”和“交叉淡入淡出”,它们第一次不起作用,但之后却完美无缺。恐怕我懒得把我的问题缩小到一个可行的例子——它太复杂了。但是,我的应用程序中的 ViewStack 由 TabBar 控制,并且状态转换包括它们的一些子项的出现。虽然在我的情况下没有 XML 解析:)

我希望这与 SDK-13933 错误(http://bugs.adobe.com/jira/browse/SDK-13993)无关。

于 2010-07-12T06:42:05.423 回答
0

尝试禁用 XML 解析以确保这不是问题。您还可以显式指定转换的起始状态(任何状态的状态“A”或状态“*”)。还尝试为您的移动操作添加明确的 x 和 y 值,只是为了保持理智。可能是状态 A 和 B 之间的菜单组件的 x 和 y 位置没有不同。

于 2010-07-09T16:42:42.400 回答
0

我发现我必须将代码:includeIn="<my state>" itemCreationPolicy="immediate"放在所有处于要转换到的状态的组件上。创建项目后,过渡工作顺利。

VGroups 似乎没有将itemCreationPolicy设置传递给他们的孩子,因此有必要在所有元素上重复此代码。

于 2012-03-16T17:27:09.553 回答
0

我找到了邪恶的根源 :) 原来我在解析的数据可用于模型之前触发了状态更改。

感谢大家帮助我解决这个问题。我之前第一次没有触发转换时遇到了问题。您的答案将成为检查常见错误的资源。

于 2010-07-14T06:58:09.153 回答