2011-07-06 10 views
0

フレックス3ウェブアプリケーションでは、州のクラスを使用して、同じページにサーバーからのデータを表示しています。フレックス:状態を変更すると表示が変わらない場合があります

MXMLコード部分はこれです:

<mx:states> 
    <mx:State name="Chart"> 
     <mx:AddChild position="lastChild"> 
      <ns2:ChartPanel right="10" top="182" left="10" bottom="10"></ns2:ChartPanel> 
     </mx:AddChild> 
    </mx:State> 
    <mx:State name="List"> 
     <mx:AddChild position="lastChild"> 
      <ns2:TabularPanel right="10" top="182" left="10" bottom="10"></ns2:TabularPanel> 
     </mx:AddChild> 
    </mx:State> 
    <mx:State name="ChatHistory"> 
     <mx:AddChild position="lastChild"> 
      <ns2:ChatHistoryPanel right="10" top="182" left="10" bottom="10"></ns2:ChatHistoryPanel> 
     </mx:AddChild> 
    </mx:State> 
</mx:states> 

ChartPanelTabularPanelChatHistoryPanelデータグリッドを使用しながら、データを表示するAreaChartを使用しています。

私はcurrentStateのを設定することにより、状態を切り替える:

protected function onCriteriaChange(event:Event):void 
{ 
    if (criteria.selectedLabel == "Chat History") 
    { 
    refreshChatHistory(); 
     currentState = "ChatHistory"; 
    } 
    else 
    { 
    UsersModel.unique = criteria.selectedIndex; 
    if (btnChart.selected) 
    { 
        UsersDataController.getNumParticipants(); 
      currentState = "Chart"; 
     } 
     if (btnList.selected) 
     { 
      UsersDataController.getListOfParticipants(); 
      currentState == "List"; 
     } 
    } 
} 

初期状態は 'チャート' です。状態間の

切り替えは、私が「リスト」から「ChatHistory」から切り替える場合を除いて正常に動作します:

は、ここで問題です。ディスプレイは変更されずにChatHistoryPanelコンテンツに残ります。

私は、この問題が何であるか全く分かりません。私は解決策を見つけることができませんでした。 提案があれば幸いです。私がやろうとしていることに対しても回避策があります。

私が使用している:Flash Builderの4.5、Flex3、Windows 7は、クローム

感謝を!

オフェル

コードを切り替えるあなたの状態で
+1

実際の切り替えを行うコードを表示します。これにViewStackを使用していない理由は何ですか? –

+0

このコードを継承して自分の状態を追加したので、ViewStackを調べます。 currentStateを変更するためのコードスニペットが上記の投稿に追加されました。ありがとう! – oferbar

答えて

2

は、次があります。

if (btnList.selected) 
    { 
     UsersDataController.getListOfParticipants(); 
     currentState == "List"; //This checks equality instead of updating the property 
    } 

をそして、あなたはにこれを変更する必要があります。それは、このように単なるタイプミスだった

if (btnList.selected) 
    { 
     UsersDataController.getListOfParticipants(); 
     currentState = "List"; //This effectively updates your currentState property 
    } 

:P

乾杯

+0

OMG、このような不具合のエラー:)このような場合、Flash Builder 4.5に警告またはコンパイラエラーはありませんか? – oferbar

+0

@oferbar、警告もエラーもありません(エラーではなく、完全に良いコードなので)。しかし、Dennisが言及しているように、これには州の代わりにViewStackを使うべきでしょう。使用するのが簡単ですし、状態がFlex 3のお尻の痛みであることを覚えています。Flex 4では大幅に改善されました:) –

関連する問題