0

以下は非常に単純な例です。ランダムに、step2 ボタンをクリックすると状態が変わりますが、Step 2 パネルは表示されません。

状態の子が何らかの理由で作成されていないと思われるため、itemCreationPolicy を「immediate」に設定しましたが、違いはありません

これはアプリケーションにとって壊滅的な事態です

何かアイデアはありますか?

 <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>
4

2 に答える 2

1

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>
于 2010-11-19T09:09:27.660 に答える
1

Flex 4 SDK の古い/プレリリース バージョンを使用しているようです。4.1.0 (最後の安定バージョン) に更新することをお勧めします。

PS: 書くthis.setCurrentState('step1',true)ことは最善の考えではありません。使用することをお勧めしますcurrentState = 'step1'-これは、状態が変化する公式の方法です。

于 2010-11-19T14:15:34.147 に答える