Flex 3种方式的页面跳转

转自:http://tech.ddvip.com/2009-09/1252503392131783.html

  1、ViewStack方式;

  2、NavigatorToUrl方式(这个函数还可以调用javascript,呵呵);

  3、LoadModule方式;

  可以说,每种方式都有各自的优缺点,FLEX的页面跳转方式也可以使用其它方式,特别是在项目中的页面跳转方式更要结合采用的框架本身来进行确定,这个以后的高级应用中会具体介绍。

  源码如下,读者可以编码体验一下:

<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" backgroundGradientAlphas="[1.0, 1.0]" backgroundGradientColors="[#0CBCC7, #C8F806]" creationComplete="init()">

 <mx:Script>

  <![CDATA[

      import module.MultiWinModule;

            import mx.modules.Module;

            import mx.events.ModuleEvent;

            import mx.modules.ModuleManager;

            import mx.modules.IModuleInfo;

 

            protected var moduleInfo:IModuleInfo;

 

            private function init():void {

                //创建module(此处只创建,不load)

                moduleInfo = ModuleManager.getModule("module/MultiWinModule.swf");

                //注册ready监听

                moduleInfo.addEventListener(ModuleEvent.READY, onModuleReady);

                moduleInfo.addEventListener(ModuleEvent.ERROR, onModuleLoadError);

            }

 

            protected function getModuleInfo ():IModuleInfo {

               //返回创建的module对象

               return moduleInfo;

            }

 

            private function loadModule() : void {

                //load module

                getModuleInfo().load();

            }

 

            private function unloadModule() : void {

                //unload module

                testModuleTile.removeAllChildren();

                getModuleInfo().release();           

            }

 

            private function onModuleReady(e:ModuleEvent):void {

                //currentTarget类型匹配转换

                var moduleInfo:IModuleInfo = e.currentTarget as IModuleInfo;

                //module显示列表

                testModuleTile.addChild(moduleInfo.factory.create() as MultiWinModule);

            }

 

            private function onModuleLoadError(e:ModuleEvent):void {

 

            }             

 

   private function navigatorToPage():void

   {

    //调用创建的flex页面

//    var javaeyeUrl:URLRequest = new URLRequest("page/NavigatePage.swf");

                //调用URL(或者其它jsp页面)  

    var javaeyeUrl:URLRequest=new URLRequest("http://wangyisong.javaeye.com");

                navigateToURL(javaeyeUrl,"_top");

   }

 

  ]]>

 </mx:Script>

 

 <!--viewStack-->

 <mx:Panel title="多窗口方式一:ViewStack" height="209" width="429"

         paddingTop="10" paddingLeft="10" paddingRight="10" paddingBottom="10" fontSize="12" fontWeight="bold" fontStyle="normal" backgroundColor="#F63B09" x="10" y="22" backgroundAlpha="0.5">          

        <mx:HBox borderStyle="solid" width="388" paddingTop="5" paddingLeft="5" paddingRight="5" paddingBottom="5" fontSize="16">        

            <mx:Button id="searchButton" label="Search Panel"

                click="myViewStack.selectedChild=search;" fontSize="12" fontFamily="Times New Roman"/>

 

            <mx:Button id="cInfoButton" label="Customer Info Panel"

                click="myViewStack.selectedChild=custInfo;" fontSize="12" fontFamily="Times New Roman"/>

 

            <mx:Button id="aInfoButton" label="Account Panel"

                click="myViewStack.selectedChild=accountInfo;" fontSize="12" fontFamily="Times New Roman" width="102"/>

        </mx:HBox>

        <mx:ViewStack id="myViewStack" borderStyle="solid" width="387" height="103">

            <mx:Canvas id="search" backgroundColor="#FFFFCC" label="Search" width="100%" height="100%" fontSize="12" fontFamily="Times New Roman">

                <mx:Label text="Search Screen" color="#000000"/>

            </mx:Canvas>

            <mx:Canvas id="custInfo" backgroundColor="#CCFFFF" label="Customer Info" width="100%" height="100%" fontSize="12" fontFamily="Times New Roman">

                <mx:Label text="Customer Info" color="#000000"/>

            </mx:Canvas>

            <mx:Canvas id="accountInfo" backgroundColor="#FFCCFF" label="Account Info" width="100%" height="100%" fontSize="12" fontFamily="Times New Roman">

                <mx:Label text="Account Info" color="#000000"/>

            </mx:Canvas>

        </mx:ViewStack>

    </mx:Panel>

 

    <!--navigateToURL-->

    <mx:Label x="21" y="252" text="多窗口方式二:NavigatorToUrl" fontSize="12" fontWeight="bold"/>

 <mx:LinkButton y="247" label="http://wangyisong.javaeye.com" click="navigatorToPage()" x="216" fontSize="16" fontFamily="Times New Roman" color="#0A1BF8" width="223"/>

 

    <!--loadModule-->

    <mx:Panel title="多窗口方式三:LoadModule" x="10" y="285" width="429" height="250" layout="absolute" fontSize="12" backgroundColor="#F0F80A" backgroundAlpha="0.5">       

        <mx:Tile id="testModuleTile" width="409" height="170" y="0" x="0">

        </mx:Tile>

 

        <mx:Button x="76" y="178" label="加载" click="loadModule()"/>

        <mx:Button x="223" y="178" label="卸载" click="unloadModule()"/>

    </mx:Panel>   

</mx:Application>

 

转自:http://zhangsdmail.blog.163.com/blog/static/1283822852010021111854790/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值