flex利用浏览器的后退前进按钮返回前后页面(BrowserManager)

    技术2022-05-19  24

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


    最新回复(0)