Flex关于页面跳转的方式,我是直接贴的,博客中很多很多,我只是贴过来然后结合实际应用中分析下那种方式最好。
Flex中实现页面的跳转以下几种方式:
1、使用ViewStack组件,把要跳转的页新建成 MXML Component,然后通过 ViewStack 组件把这些页包含进来,然后再通过改变ViewStack的selectedItem或者electedChild来切换这些页。
分析:这种方式比较简单,但是会存在页面的混乱,为什么混乱呢,因为ViewStack中的对象初始化过一次,在此跳转过来时,会保持上一次的输入或其他的信息,还要想办法恢复原本的状态,很是麻烦。
[http://blog.csdn.net/cn_gaowei]
2、使用navigateToURL,主要方式如下:
var url:String = "http://localhost:8080/Flex_Java_Demo/welcome.html";
var request:URLRequest = new URLRequest(url);
navigateToURL(request,"_blank");
这个方法页面切换时会弹出新的页面,而不是只变换 url
分析:贴的说,会弹出新页面,这是不准确的,懂js的应该知道,可以使用navigateToURL(request,"_top");在本页面跳转,这种通过js跳转的方式比较灵活,缺点就是必须准备相应的页面,而且页面只要跳过去,原来页面(Flex页面)的信息就没有了,如果是简单的实现页面跳转可以使用这种方式,但是只是页面跳转,还需要用Flex吗?
[http://blog.csdn.net/cn_gaowei]
3、引用flash中的 import flash.external.ExternalInterface 这个接口,
它能提供像jsp中window.location.href方法一样方便,主要代码为:
ExternalInterface.call("function(){window.location.href='http://localhost:8080/Flex_J2eeDemo/bin/Welcome.html';}");
分析:这种方式跟第二种,一样的原理,都一样的利弊。当然也存在这样的不好,就是url必须固定,要用改动的话,Flex也要做相应的改动。
[http://blog.csdn.net/cn_gaowei]
4、使用组件技术,把不同的页面做成component,然后通过TabNavigator等进行切换,通过使用state实现跳转。
分析:这种跟第一种是一样的。而且state总觉得比较垃圾的技术,控制起来比较费劲,日常开发中不建议使用,我反正不用。
[http://blog.csdn.net/cn_gaowei]
5、把不同的页面做成Module,然后使用ModuleLoder来进行加载切换。
分析:上边说了那么多方式的利弊,那什么方式是做好的方式呢?我觉得是这种方式。首先模块开发,无论在java体系还是在C或C++以至任何一种语言都是大力倡导的吧,它的好处当然就不用我多说了,可以多人共享使用此模块;Flex中模块实现页面跳转时,需要把上一个模块卸载,新加载一个模块,就不存在上边1中的烦恼;模块开发还可以通过相互调用,轻松实现信息的相互传递;再有,也不会有2.3中的方法那么不地道,明明是Actionscript,非要去调用javascript来实现。。。。