2010-11-19 3 views
0

以下は非常に単純な例です。ランダムに、step2ボタンをクリックすると状態は変わりますが、ステップ2パネルは表示されません。 flex/flashbuilder 4つのガンボ状態が空白になることがある

私は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> 

答えて

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> 
+0

問題はランダムで、20回動作して突然問題がポップアップします。私はアプリを1時間放置して戻ってくると、より頻繁に起こるようです(GC?) 中括弧チップのおかげで –

1

は、Flex 4 SDKの古い/プレリリースバージョンを使用するようです。 4.1.0 - 最後の安定版に更新することは良い考えです。

P.S:this.setCurrentState('step1',true)の書き込みは最適ではありません。私はcurrentState = 'step1'を使用することを提案します - それは国家の変化の公式な方法です。

+0

私はフレックス4.1.0を使用しています setCurrentStateを使用する際の問題点はAPIドキュメントですそれ? –

+0

[documentation](http://livedocs.adobe.com/flex/3/html/help.html?content=using_states_3.htmdocumentation)は、次のように述べています。「setCurrentState()メソッドを呼び出すことによってコンポーネントのビューステートを変更することもできますUIComponentクラスの2つのビューステート間で定義したトランジションを適用したくない場合にこのメソッドを使用してください。したがって、ほとんどの場合、単に 'currentState = 'foo''を使うことができます。 –

関連する問題