惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
月光博客
月光博客
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
Tailwind CSS Blog
大猫的无限游戏
大猫的无限游戏
The Cloudflare Blog
博客园_首页
Jina AI
Jina AI
WordPress大学
WordPress大学
小众软件
小众软件
阮一峰的网络日志
阮一峰的网络日志
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 三生石上(FineUI控件)
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 叶小钗
美团技术团队
IT之家
IT之家
爱范儿
爱范儿
有赞技术团队
有赞技术团队
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
量子位
博客园 - 聂微东
人人都是产品经理
人人都是产品经理
博客园 - 【当耐特】

博客园 - 唐朝

SqlServer 导出表结构到Word struts2中的jar文件说明 Android的PackageManager和ActivityManager liferay+portlet+开发实例 (转)android应用自适应多分辨率的解决方法 Flex4自定义分页组件 Flex嵌入到HTML中切换焦点不能输入中文和遮盖DIV的问题 Cairngorm的工作流程 最简单的Flex框架Cairngorm实例,绝对容易 Flex4之DataGrid四个的示例【客户端和服务器端】 Flex4表单验证【重点说明comboBox验证】 Flex 4之fx、mx以及s命名空间解说 Flex4之通过iframe嵌入html网页 Flex4之在Aert提示框中加入超链接 Flex4之皮肤定制【Skin类和Skin类】 Flex4之四种事件处理方式 Flex4之简单菜单制作 Flex4之使用ActionScript构建组件 Flex4之元数据标签使用
四种方式实现Flex页面跳转
唐朝 · 2012-02-25 · via 博客园 - 唐朝

在学习Flex的过程中,你可能会遇到Flex页面跳转的问题,本文和大家分享一下,页面在flex里面其实就是一个个的Canvas,vbox,hbox等等之类的东西,看到的不同页面的切换,就是这些元素一层层的堆积,或者替换,但是为了好理解,还是称之为"页面跳转"。

Flex页面跳转

其实对于这个题目是不恰当的,因为flex中是没有页面这个概念的,页面在flex里面其实就是一个个的Canvas,vbox,hbox等等之类的东西,看到的不同页面的切换,就是这些元素一层层的堆积,或者替换,但是为了好理解,还是称之为"页面跳转"。其实我们可以对比传统的C/S开发模式,没页面跳转,只有窗体和元件的显示和隐藏。

那么怎么实现Flex页面跳转呢,我总结了下,主要有一下几种方式:

1、使用ViewStack组件,具体代码如下所示:把要跳转的页新建成MXMLComponent,然后通过ViewStack组件把
这些页包含进来
 

  1. <mx:ViewStackidmx:ViewStackid="storeViews"width="100%"height="550"creationPolicy="all"> 
  2. <shouyeidshouyeid="homeView"label="首页"showEffect="WipeDown"hideEffect="WipeUp"/> 
  3. <leixingidleixingid="pView"label="模板类型"showEffect="WipeDown"hideEffect="WipeUp"/> 
  4. <makeidmakeid="supportView"label="立即制作"showEffect="WipeDown"hideEffect="WipeUp"/> 
  5. </mx:ViewStack> 

然后再用别的组件切换这些页,比如用Button
 

  1. <mx:Buttonclickmx:Buttonclick="storeViews.selectedChild=homeView;"/> 

2、使用navigateToURL,主要方式如下:

  1. varurl:String="http://localhost:8080/Flex_J2eeDemo/bin/Welcome.html";  
  2. varrequest:URLRequest=newURLRequest(url);  
  3. navigateToURL(request,"_blank"); 

但是这个方法很郁闷就是页面切换总是弹出新的页面,而不是只变换url

3、也是我采用的方法,就是引用flash中的importflash.external.ExternalInterface这个接口,他能提供像jsp中window.location.href方法一样方便,Flex页面跳转主要代码为:

  1. ExternalInterface.call("function()  
  2. {window.location.href='http://localhost:8080/Flex_J2eeDemo/bin/Welcome.html';}  
  3.  
  4. ");  

4、使用组件技术,把不通的页面做成component,然后通过TabNavigator等进行切换,通过使用state实现跳转。

最后总结下吧:在Flex中,根本就没有页面的概念,有的只有状态,Flex是通过改变不同的状态在我们的Application中实现不同页面的平滑变换。目前已有人提出使用"栈"的"后进先出"的思想等等方法来实现,当然还有其他的方法,但是都需要我们的不断探索、挖掘。