我一直在撕裂我的頭髮現在一個星期左右的時間,它的時間我尋求一些幫助......的Flex - 返回一個窗口到原來的狀態
我編碼一個小應用程序,以顯示我的下一個火車離開車站。通常只顯示下一列火車的小時數,但如果單擊prefs按鈕,則應用程序窗口會放大,並顯示列車和小時數據網格。在該狀態下點擊關閉按鈕會返回到「開始」狀態,或者應該這樣做。
問題是數據網格消失,但應用程序窗口保持相同的大小。它應該恢復到原來的大小。
我一直在嘗試很多不同的方法,用Canvas或Panels代替VBox,但都沒有工作。在設計模式中,當狀態之間切換時,一切都按預期工作
這是我第一次使用狀態,所以我可能會錯過一些基本的東西。
這是一個代碼示例 - 我使用2個視圖狀態,Start和Prefs。
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml"
creationComplete="init();"
cornerRadius="12"
currentState='Start' width="350" height="250">
<mx:states>
<mx:State name="Start">
<mx:AddChild>
<mx:VBox id="box_parent" width="100%" height="100%" verticalGap="2">
<mx:Label text="Next Train Leaves At" textAlign="center" width="100%"/>
<mx:Label text="--:--" width="100%" height="100" fontSize="64" id="timetext" textAlign="center" fontWeight="bold"/>
<mx:HBox width="100%" height="25" id="hbox1">
<mx:Button label="Prefs"
id="buttonPrefs"
click="currentState='Prefs'"/>
<mx:Spacer width="70%" id="spacer1"/>
<mx:Button
label="Next"
click="findNextTrain()" id="buttonNext"/>
</mx:HBox>
</mx:VBox>
</mx:AddChild>
<mx:SetProperty name="layout" value="vertical"/>
<mx:SetProperty name="width" value="350"/>
<mx:SetProperty name="height" value="220"/>
</mx:State>
<mx:State name="Prefs" basedOn="Start">
<mx:AddChild relativeTo="{box_parent}" position="lastChild">
<mx:DataGrid height="80%" width="100%" dataProvider="{trains}" id="traindata" editable="false">
<mx:columns>
<mx:DataGridColumn headerText="Station" dataField="stationid"/>
<mx:DataGridColumn headerText="Leave" dataField="leave"/>
</mx:columns>
</mx:DataGrid>
</mx:AddChild>
<mx:RemoveChild target="{buttonPrefs}"/>
<mx:SetProperty target="{box_parent}" name="height" value="500"/>
<mx:AddChild relativeTo="{spacer1}" position="before">
<mx:Button label="Close" click="currentState='Start'"/>
</mx:AddChild>
<mx:SetProperty name="height" value="570"/>
</mx:State>
</mx:states>
<mx:transitions>
<mx:Transition fromState="*" toState="*">
<mx:Resize target="{this}" duration="500"/>
</mx:Transition>
</mx:transitions>
</mx:WindowedApplication>
謝謝!那就是訣竅。所以這意味着如果需要的話,我也可以使用動作重置值。 – 2009-06-17 05:45:58