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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值