`

flex3 deep link

    博客分类:
  • flex
阅读更多
<mx:application historymanagementenabled="false" xmlns:mx="http://www.adobe.com/2006/mxml" creationcomplete="initApp()"><mx:application historymanagementenabled="false" xmlns:mx="http://www.adobe.com/2006/mxml" creationcomplete="initApp()">

<mx:script>
<!---->    import mx.events.BrowserChangeEvent;
    import mx.managers.IBrowserManager;
    import mx.managers.BrowserManager;
    import mx.utils.URLUtil;

    public var browserManager:IBrowserManager;
      
    private function initApp():void
    {
         browserManager = BrowserManager.getInstance();
browserManager.addEventListener(BrowserChangeEvent.BROWSER_URL_CHANGE, parseURL);
browserManager.init("", "Shipping");
    }
    private var parsing:Boolean = false;
    private function parseURL(event:Event):void
    {
        parsing = true;

        var o:Object = URLUtil.stringToObject(browserManager.fragment);
        if (o.view == undefined)
            o.view = 0;
        tn.selectedIndex = o.view;
        browserManager.setTitle((tn.selectedIndex == 0) ? "Shipping" : "Receiving");
        tn.validateNow();

        var details:Boolean = o.details == true;
        if (tn.selectedIndex == 0)
            shipDetails.selected = details;
        else
            recvDetails.selected = details;

        parsing = false;
    }

    private function updateURL():void
    {
        if (!parsing)
            callLater(actuallyUpdateURL);
    }

    private function actuallyUpdateURL():void
    {
        var o:Object = {};
        var t:String = "";

        if (tn.selectedIndex == 1)
        {
            t = "Receiving";
            o.view = tn.selectedIndex;
            if (recvDetails.selected)
                o.details = true;
        }
        else
        {
            t = "Shipping";
            o.view = tn.selectedIndex;
            if (shipDetails.selected)
                o.details = true;
}
         var s:String = URLUtil.objectToString(o);
         browserManager.setFragment(s);
         browserManager.setTitle(t);
    }

]]>
</mx:script>

The key pieces are:

 

     

  1. historyManagementEnabled="false" in the Application tag
  2. the BrowserManager.init() call in initApp() call that initializes the BrowserManager to a default fragment. "" means "nothing after the '#'".
  3. the three places where change="updateURL()" will update the URL based on changes to the TabNavigator or CheckBoxes.
  4. the BrowserManager.addEventListener() call in initApp() that listens for changes from the Browser
  5. the code in parseURL() that interprets the new fragment

This example uses URLUtils to take an object of property/value pairs, creates the fragment from it, and parses the fragment back into an object of property/value pairs. The object will have properties like view=1 and details=true, and create URL fragments like "#view=1;details=true". You can choose to not use URLUtils and create your own formatting and parsing if you wish.

If you use the third-party UrlKit, you have to set up a set of "rules" that map the components to the URL and vice-versa. It makes it easier to create more readable and hierarchical fragments like "#view=Shipping;details" or "#/Shipping/details=true". There's some extra work in figuring out the rules, but then you don't need to write methods like updateURL and parseURL as that functionality is contained in the rules.

</mx:application>
  </mx:application>
分享到:
评论

相关推荐

    flex3d效果展示

    Flex3D基于ActionScript 3,这是一种面向对象的编程语言,用于在Flash Player或Adobe AIR环境中运行。ActionScript 3提供了比其前身ActionScript 2更高的性能和更严谨的语法,使得开发3D应用变得更加高效。Flex3D库...

    Flex3中文版API

    Flex3中文版API是针对Adobe Flex 3框架的详尽指南,它为开发者提供了全面的文档,涵盖了从基础概念到高级特性的所有内容。Flex3是一个用于构建富互联网应用程序(RIA)的开源开发平台,主要基于ActionScript 3.0语言...

    flex3使用说明

    Flex3 使用说明 Flex3 是一个高效、免费的开源框架,用于构建具有表现力的 Web 应用程序。Flex3 可以与 Java 后台进行通信,并与 FusionCharts 结合使用,实现数据可视化。下面是 Flex3 的详细介绍: 一、Flex ...

    flex3注册码flex3注册码flex3注册码flex3注册码flex3注册码

    然而,实际提供的部分内容却是一串看似随机的数字组合,并未直接提及Flex3软件的具体信息。为了满足生成详细知识点的要求,我们将从Flex3软件的基本介绍入手,探讨其注册码的相关概念与获取途径,以及在使用此类软件...

    Flex3开发指南 flex3基础教程

    Flex3开发指南 flex3基础教程

    Flex3中文PDF教程

    Flex3是Adobe公司推出的一种基于ActionScript 3.0的开源框架,主要用于构建富互联网应用程序(Rich Internet Applications,简称RIA)。这个中文PDF教程是学习Flex3技术的重要资源,涵盖了从基础概念到高级应用的...

    Flex 3开发指南

    ### Flex 3 开发指南知识点概述 #### 一、Flex 3 概念与特性 - **Flex**:由Adobe Systems开发的一种开源框架,用于构建跨浏览器和跨平台的RIA(Rich Internet Applications)应用程序。 - **Flex 3**:Flex 3作为...

    Flex3与Flex4对比

    ### Flex3与Flex4对比分析 #### 一、概述 随着技术的发展,Adobe Flex平台也在不断进化以满足日益增长的应用需求。本文旨在详细介绍Flex3与Flex4之间的主要区别,特别是Flex4相较于Flex3的新功能与改进之处。通过...

    Flex3与flex4的区别

    标题和描述都聚焦于对比Flex3与Flex4之间的差异,这是一种Adobe系统提供的开源框架,用于构建跨平台的桌面和移动应用程序。Flex4,其代号为Gumbo,是在Flex3的基础上进行了重大升级,旨在改进用户体验和开发效率。...

    flex3帮助文档

    Flex3是Adobe公司开发的一款强大的富互联网应用(RIA)开发框架,主要用来构建在Web上运行的交互式、高性能的应用程序。它基于ActionScript编程语言和MXML标记语言,为开发者提供了丰富的组件库和强大的图形渲染能力...

    flex3-cn-api..zip_flex_flex 3 api_flex3 api_flex3 a_flex3 api

    文档名为“Flex3拞暥API..chm”,其中的“拞暥”可能是由于编码转换问题导致的错误显示,实际上应该是“API”的正确拼音表示。 Flex 3 API文档详细阐述了Flex框架的各种类、方法、属性和事件,涵盖了以下关键知识点...

    Flex3样式设计工具4IN1Flex3样式设计工具4in1.rar

    Flex3是Adobe开发的一种用于构建富互联网应用(RIA)的框架,它基于ActionScript和MXML,能够创建具有丰富交互性和动态视觉效果的应用程序。在Flex3中,样式设计是提升用户界面美观度和一致性的重要手段。这个"Flex3...

    Flex3学习指南-是初学者学习Flex必备资料1

    Flex3学习指南是一份专为初学者设计的资源,旨在帮助他们掌握Adobe Flex 3这一强大的富互联网应用程序(RIA)开发框架。Flex 3在Web应用开发领域具有广泛的影响力,尤其在创建交互式、图形丰富的用户界面方面表现...

    Bose博士SoundLink Flex 蓝牙扬声器说明书.pdf

    3. **扬声器便携性束带配置**:SoundLink Flex考虑到了携带的便利性,配备有束带,用户可以根据需要调整束带以适应不同的使用场景,无论是户外旅行还是家中使用都能轻松固定。 4. **防水防尘**:这款扬声器具备防水...

    WEB项目集成Flex3功能

    【WEB项目集成Flex3功能】是指在Web应用中整合Adobe Flex 3的技术,使得Web界面可以利用Flex的强大富客户端功能。Flex是一种用于构建RIA(Rich Internet Applications)的开放源码框架,它允许开发者创建交互性更强...

    Adobe Flex 3 Component Explore

    Adobe Flex 3 Component Explore 是一个专门针对Flex 3框架的学习和参考工具,它为开发者提供了一个直观的平台来探索和理解Flex组件的使用和功能。Flex 3是Adobe开发的一个开源框架,主要用于构建富互联网应用程序...

    Flex3权威指南源码

    Flex3是中国Adobe技术社区翻译的一本关于Adobe Flex 3开发的权威指南的源代码,这本书为开发者提供了深入理解和掌握Flex 3开发的详尽资源。Flex是Adobe开发的一个开源框架,用于构建富互联网应用程序(RIA),它允许...

Global site tag (gtag.js) - Google Analytics