flex / flashbuilder 4 состояния gumbo иногда пустые - PullRequest
0 голосов
/ 19 ноября 2010

Ниже приведен очень простой пример, случайным образом, если я нажму кнопку step2, состояние изменится, но панели Step 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>

Ответы [ 2 ]

1 голос
/ 19 ноября 2010

Похоже, вы используете старую / предварительную версию Flex 4 SDK. Было бы неплохо обновить до 4.1.0 - последней стабильной версии.

P.S: Написание this.setCurrentState('step1',true) не лучшая идея. Я предлагаю использовать currentState = 'step1' - это официальный способ смены государства.

1 голос
/ 19 ноября 2010

Я только что протестировал его с 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>
...