Java与Flex学习笔记(15)----Flex中的Application与Module间的通信
2012-09-07 00:23
555 查看
在Adobe Flashbuilder 4.5中创建文件时可以创建Application,Module,Component这3类文件。本人在刚开始学习Flex时深深的不理解这3个的区别,随着学习的深入现已知道这3种的区别与用法,但是有一种“只可意会不可言传”的感觉,所以,本人就说说Application与Module之间的通信.
首先得知道Module被编译成swf文件,在Application调用的时候才加载Module.这样做的好处显而易见。
那么在Application中怎么调用Module呢?新建一个Application文件Login.mxml如下代码:
<?xmlversion="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx"pageTitle="我的网盘" preloader="ases.util.LoadingProgressBarUtil" creationComplete="app_creationCompleteHandler(event)"width="100%" height="100%"> <fx:Script> <![CDATA[ protected function reg_account_clickHandler(event:MouseEvent):void { // TODOAuto-generated method stub center_canvas.visible=false; comonModule.visible=true; if(registerModuleLoader.url==null){ registerModuleLoader.url="module/registerUserModule.swf"; } registerModuleLoader.loadModule(); //开始加载module } ]]> </fx:Script> <mx:Canvas width="1060"height="100%" id="center_canvas" > <mx:LinkButton label="注册新帐号"width="90" height="22" id="reg_account"click="reg_account_clickHandler(event)" /> </mx:Canvas> <mx:Canvas width="1060" height="100%" id="comonModule" visible="false"> <s:ModuleLoader id="registerModuleLoader" /> </mx:Canvas> </s:Application>
这部分代码实现的效果是 当点击“注册新帐号”时加载Module并隐藏“注册新帐号”按钮。注意,url中指定的registerUserModule.swf为创建的Module文件registerUserModule.mxml生成的swf文件。
Module中怎么与Application通信呢?新建一个module文件registerUserModule.mxm,代码如下所示:
<?xmlversion="1.0" encoding="utf-8"?> <s:Module xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" width="1060" height="100%"initialize="registerUser_initializeHandler(event)"creationComplete="registerUser_creationCompleteHandler(event)"> <fx:Script> <![CDATA[ protected function back_login_button_clickHandler(event:MouseEvent):void { // TODOAuto-generated method stub this.parentApplication.center_canvas.visible=true; //将母页面的center_canvas设置为可见 this.parentApplication.registerModuleLoader.unloadModule(); //卸载此Module } ]]> </fx:Script> <mx:LinkButton label="已有账号登陆"id="back_login_button"click="back_login_button_clickHandler(event)" /> </s:Module>
而这部分代码则实现的是点击“已有账号登陆”按钮返回母页面Login.mxml,即卸载此module页面即可,方法是通过this.parentApplication即可得到此母页面的实例,继而可以操作母页面的属性。
此代码为本人练习中的一个小项目的部分代码。
原创文章,转载请注明出处:http://www.dianfusoft.com/
相关文章推荐
- Flex学习笔记15——module 模块
- Java与Flex学习笔记(21)----Flex与Java通信方式之WebService
- Java与Flex学习笔记(5)----Flex与Java通信之HttpService方式
- Java与Flex学习笔记(4)----Flex与Java通信之RemoteObject方式
- Java学习笔记(线程间通信)
- java笔记15 多线程2(线程通信、Lock)
- 【Java学习笔记】Cookie Session Application
- java学习笔记15——不可变类
- Java与Flex学习笔记(17)---Flex+Red5实现在线视频播放
- flex学习笔记7----大数据量通信AMFPHP的安装
- java学习小笔记(三.socket通信)【转】
- JAVA学习笔记15——Spring框架第二章
- Java基础班学习笔记(15)GUI图形界面编程
- Java与Flex学习笔记(20)---将flex页面嵌入到jsp页面中
- Java学习笔记18天---(15)
- java学习笔记15
- JAVA学习笔记(1)_____模拟线程通信之生产者消费者问题
- java学习笔记-设计模式15(模板方法模式)
- 【Java学习笔记】59:DatagramPack和DatagramSocket做UDP通信
- Java学习笔记---15.面向对象编程10-Java中final关键字,抽象类与接口