flex/flashbuilder 4个浓度状态有时为空白
-
26-09-2019 - |
题
以下是一个非常简单的示例,随机,如果我单击“ step2”按钮,则状态将会更改,但是步骤2面板将不存在。
我怀疑该州的子女没有出于某种原因而被创建,这就是为什么我将ItemCreationPolicy设置为“立即”,但这没什么区别
这对于应用程序来说是灾难性的,因为用户处于困境,被迫刷新
有什么想法吗?
<s:BorderContainer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
creationPolicy="all" currentState="step1">
<s:states>
<s:State name="step1"/>
<s:State name="step2"/>
</s:states>
<s:BorderContainer includeIn="step1" itemCreationPolicy="immediate">
<s:Panel title="Step 1"/>
</s:BorderContainer>
<s:BorderContainer includeIn="step2" itemCreationPolicy="immediate">
<s:Panel title="Step 2"/>
</s:BorderContainer>
<s:Button title="step1" click="{this.setCurrentState('step1',true)}"/>
<s:Button title="step2" click="{this.setCurrentState('step2',true)}"/>
</s:BorderContainer>
解决方案
我刚刚使用Flex SDK 4.1进行了测试,并且它在没有更改创建策略的情况下起作用。单击“步骤2”成功改变了状态。
顺便说一句:您不需要单击事件处理程序中的卷发括号...
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" currentState="step1">
<s:layout>
<s:VerticalLayout/>
</s:layout>
<s:states>
<s:State name="step1"/>
<s:State name="step2"/>
</s:states>
<s:BorderContainer includeIn="step1">
<s:Panel title="Step 1"/>
</s:BorderContainer>
<s:BorderContainer includeIn="step2">
<s:Panel title="Step 2"/>
</s:BorderContainer>
<s:Button label="step1" click="setCurrentState('step1', true)"/>
<s:Button label="step2" click="setCurrentState('step2', true)"/>
</s:Application>
其他提示
似乎您使用了Flex 4 SDK的旧 /预发行版。更新为4.1.0-最后一个稳定版本可能是一个好主意。
PS:写作 this.setCurrentState('step1',true)
不是最好的主意。我建议使用 currentState = 'step1'
- 这是国家改变的官方方式。
不隶属于 StackOverflow