`
xiao_feng68
  • 浏览: 104278 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

(XF-12)Flex Module 通信

    博客分类:
  • Flex
 
阅读更多

1. application 通过 url 字串方式传入

              var s:String = "QueryStringModule.swf?firstName=" + ti1.text + "&lastName=" + ti2.text;

在 module 中:

<mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="parseString()">

....
    public function parseString():void {
           try {
                // Remove everything before the question mark, including
                // the question mark.
             var myPattern:RegExp = /.*/?/;
                var s:String = this.loaderInfo.url.toString();
....

2. 通过定义事件类来传递参数

    Module之间的通信交互解决办法

Flex2.01 之后提供了 modules 模块化开发包,开发者可以将程序的某些模块编译成 swf ,在需要的地方 load 进去,实现模块化的开发。

现在问题来了,每个 module 会被编译成 swf ,在一个 Application 中, module 之间该如何通信交互呢。

通常来说,在一个 swf 中,组件间的交互通信可以直接 addEventListener  和 dispatchEvent 来完成事件的传递。当然这样标准的做法也适用于 module 。理解在 AS 3.0 中事件遵循向上传递的原则,那么下面的工作就好做了。

例如,在一个 Application 中分别由 ModuleLoaderA 和 ModuleLoaderB 加载了两个 module ,分别为 moduleA 和 moduleB ,其中 A需要向 B 传递数据。事件的传递就应该是这样的: moduleA --> ModuleLoaderA --> Application --> ModuleLoaderB --> moduleB 。 
1. 
首先当然先要定义一个事件,那么在 moduleA 里应该由 this.parent.parent 来 dispatchEvent( 事件 ) , this.parent 即加载 moduleA的 ModuleLoaderA ,那么 this.parent.parent 即 Application ; 
2. 
在 Application 中,由 ModuleLoaderA 来 addEventListener( 事件 ) ,即侦听了由 moduleA 传上来的事件,侦听到之后再由ModuleLoaderB 负责 dispatchEvent( 事件 ) 。 
3. 
在 moduleB 里, this.parent.parent.addEventListener( 事件 ) ,这样就侦听了由 ModuleLoaderB 传递的事件。

其实在 module 里,使用 this.systemManager.addEventListener/dispatchEvent 也可以完成事件的传递,但是如果一个 module 里用this.systemManager ,而另一个 module 里使用 this.parent.parent 却不能传递事件, systemManager 并不等于 application ,systemManager.document 才是 application ,也就是说用 systemManager 的话必须两者都用,用 parent 的话也可以使用systemManager.document 。不明白的朋友可以仔细阅读 Flex 的帮助文档。

 

3. 通过 parentApplication 两个共生模块间进行通信

共生模块是指在一个 application 中同时加载两个模块

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml " xmlns:ns1="module.*">
<mx:Script>
<![CDATA[
]]>
</mx:Script>
<ns1:InterModule2 height="122" id="m2">
</ns1:InterModule2>
<ns1:InterModule1 id="m1" borderColor="#1492EA" cornerRadius="5">
</ns1:InterModule1>
</mx:Application>

在 m1 中定义方法 getNewTitle()

则 m2 可以调用 parentApplication.m1.getNewTitle();

4. 主模块向不同模块传入参数

通过 event 实现主模块与子模块, 子模块间参数传递, 参考这篇文章

http://weblogs.macromedia.com/pent/archives/2007/01/building_module.cfm

各模块实现一个接口, 主模块调用模块接口的方法来传递参数

分享到:
评论

相关推荐

    xf-a2010.64.zip

    标题“xf-a2010.64.zip”暗示了这是一个包含“xf-a2010”软件的64位版本的压缩文件。通常,".zip"是用于压缩多个文件或文件夹以便于存储和传输的常见格式。在这种情况下,我们可以推测这个压缩包可能包含了与“xf-...

    xf-a2010注册机.rar

    xf-a2010注册机.rarx

    xf-adesk2012x64.rar

    最新的 autodesk2012 注册机 64位xf-adesk2012x64.rar

    xf-adsk2015_x64.exe

    xf-adsk2015_x64.exe inwentor註冊機

    xf-adsk2016_x64 CAD2016注册机

    xf-adsk2016_x64 CAD2016注册机

    xf-adobecc2015

    AE用于产生注册码的 xf-adobecc2015

    3D MAX2011注册机xf-a2011-64bits

    3D MAX 2011 注册机xf-a2011-64bits

    xf-mccs6.exe

    2. 打开注册机“xf-mccs6.exe”,点击“generate” 生成序列号; 3. 将生成的序列号前4位替换为:1424 1325-1627-6964-9232-5771-4755 1424-1627-6964-9232-5771-4755 4.安装flash builder 4.7软件 5、解压成功后,...

    XF-S4040中文语音合成芯片数据手册1.0

    ### XF-S4040中文语音合成芯片数据手册关键知识点解析 #### 一、概述 - **产品背景**:XF-S4040是科大讯飞推出的一款高性能中文语音合成芯片,旨在满足日益增长的语音交互需求。该芯片集成了先进的语音合成技术,...

    xf-adobecc

    2.打开 xf-adobecc.exe 注册机,生成序列号(请勿关闭注册机), 安装 ADOBE CC 软件: 点击“安装”(我已经购买), 点击登录 ADOBE ID,(请确保已经断网), 选择稍后连接, 接受许可协议,输入刚注册的序列号,...

    语音合成模块-XF-S4240

    特别值得一提的是,压缩包中包含的“UART”文件,这表明XF-S4240支持UART(通用异步收发传输器)通信协议。UART是一种常见的串行通信接口,常用于设备间的短距离通信。这意味着用户可以利用凌阳单片机或其他支持UART...

    xf-adsk2018_x64

    2018版AutoCAD加入了高分辨率4k支持,用户体验视觉效果会更好,但在网上找AutoCAD2018版的软件很难找,下载也非常慢,小编这里附上AutoCAD2018的64位简体中文破解版,还有注册,可以完美激活软件。

    xf-adsk2016(x86/x64)注册机.rar

    软件介绍: AUTODESK 2016系列软件注册机-32及64位,网上转载过来的,仅供测试后删除。

    xf-adesk2012x32.rar

    最新的 autodesk 2012 注册机 xf-adesk2012x32.rar

    Dahua大华DH-S3100C-24GT4XF-V2以太网交换机电汇聚和光汇聚快速操作手册.docx

    "Dahua大华DH-S3100C-24GT4XF-V2以太网交换机电汇聚和光汇聚快速操作手册" 本资源为Dahua大华DH-S3100C-24GT4XF-V2以太网交换机电汇聚和光汇聚快速操作手册,旨在提供正确的使用方法、安全须知、安装要求、维修要求...

    (XF - 8)Flex + Spring

    标题 "(XF - 8)Flex + Spring" 暗示了这个主题是关于整合Adobe Flex与Spring框架的。在Web开发中,Flex通常用于构建富互联网应用程序(RIA),而Spring是一个广泛使用的Java后端框架,它提供了依赖注入、AOP(面向...

    1-2-TL665xF-EasyEVM开发板硬件说明书.pdf

    广州创龙结合TI KeyStone系列多核架构TMS320C665x及Xilinx Artix-7系列FPGA设计的TL665xF-EasyEVM开发板是一款DSP+FPGA高速大数据采集处理平台,其底板采用沉金无铅工艺的6层板设计,适用于高端图像处理、软件无线电...

    xf86-video-intel-2.2.99.901

    《xf86-video-intel-2.2.99.901:为945/960集成显卡优化的Linux驱动详解》 在Linux操作系统中,硬件驱动是连接硬件设备与操作系统的重要桥梁,它负责管理和控制硬件设备的工作。针对Intel 945和960集成显卡,xf86-...

    xf86-video-qxl

    "xf86-video-qxl" 是一个专门为Linux操作系统设计的QXL图形显示适配器的开源驱动程序。这个驱动使得Linux系统能够识别并充分利用QXL显卡的特性,提供高效且稳定的图形性能。QXL显卡是专为虚拟化环境设计的,其独特之...

    20221012-2.8.5-xf-app-online-android.apk

    20221012-2.8.5-xf-app-online-android.apk

Global site tag (gtag.js) - Google Analytics