<?xml version="1.0"?> <!-- states/StatesBrowserManager.mxml --> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:mx="library://ns.adobe.com/flex/halo" xmlns:s="library://ns.adobe.com/flex/spark" creationComplete="initApp();"> <fx:Script> <![CDATA[ import mx.managers.BrowserManager; import mx.managers.IBrowserManager; import mx.events.BrowserChangeEvent; import mx.utils.URLUtil; // The search string value. [Bindable] public var searchString:String; // 一个 BrowserManager 类的实例. private var browserManager:IBrowserManager; //在应用创建完成时初始化 BrowserManager. public function initApp():void { browserManager = BrowserManager.getInstance(); browserManager.addEventListener(BrowserChangeEvent.BROWSER_URL_CHANGE, parseURL); browserManager.init("", "Browser Manager for View States"); updateURL('default'); } // 当用户按前进后退按钮时触发事件,事件处理器从URL里接到状态的值,从而。用他 //设定当前状态。 private var stateFromURL:String; private function parseURL(e:Event):void { var o:Object = URLUtil.stringToObject(browserManager.fragment); stateFromURL = o.state; currentState=stateFromURL; } // 状态改变时改变地址。 private function updateURL(myCurrentState:String):void { var s:String = "state=" + myCurrentState; browserManager.setFragment(s); } // 当按下go按钮时执行该方法。 // 它会改变状态以及调用updateURL()方法来改变URL。 public function doSearch():void { currentState = "results"; updateURL('results'); searchString = searchInput.text; } // 点击reset按钮时执行该方法,该方法是状态改到默认值,。并且改变URL public function reset():void { currentState = ''; searchInput.text = ""; searchString = ""; updateURL('default'); } ]]> </fx:Script> <s:states> <!-- The state for displaying the search results --> <s:State name="default"/> <s:State name="results"/> </s:states> <s:Panel id="panel1" title="搜索" title.results="Results" resizeEffect="Resize" width="10%" height="10%" width.results="100%" height.results="100%" width.default="600" height.default="400"> <s:layout> <s:VerticalLayout/> </s:layout> <s:SkinnableContainer id="searchFields" defaultButton="{b}"> <s:layout> <s:HorizontalLayout/> </s:layout> <s:TextInput id="searchInput" width.default="359"/> <s:Button includeIn="results" label="重置" click="reset();"/> </s:SkinnableContainer> <s:Button id="b" label="查询" click="doSearch();"/> </s:Panel> </s:Application>