`

Flex中的Application、Module和Component

    博客分类:
  • Flex
 
阅读更多
今天要记录一下技术上的事情,根据我这两个月来的学习把module、component这两个用来解耦的东西做下较为详细的说明,以及这两个与主程序的 关系还有我所了解的通信方式做一下总结。
首先,module和components都可以把一个比较大的程序分成几个“部分”,这样每个部分可以单独开发和测试,更符合软件工程的“分而治之”思 想,也会大大减少开发的难度和尽可能的减少认为错误,而且还都可以复用。

module是可以动态加载和卸载的,也就是说它不是编译到主程序中的,可以做到想要的时候拿来,不想要的时候卸掉。因为module是预先编译的,但是 module不可以独立执行,一定要嵌到一个Application中才可以运行。注意:用它的时候用的是.swf,也就是编译之后的代码。简单的应用可 以用<mx:ModuleLoader>标签,在里面把url属性赋值就可以了,例如url="******.swf",复杂一点的就要用 moduleManager类来进行管理和控制了,跟其他的Manager是差不多,详细的根据Api吧。

component是静态的,它的用于自定义一个组件(类似于Button、dataGrid等),只要包含了定义好component的包,在Flex Builder中的Design模式下就可以像拖拽Button一样来应用它,会非常的方便。它在应用的时候相当于把自己嵌进Application中, 要随着Application进行编译。这从某种意义上说有点像import和include的区别。在代码应用上,在Application中的 xmlns属性中引入定义好的component所在的包就可以了,例如:xmlns:something="components.*",标签中可以这 样引用<something:yourComponent>,yourComponent就像一个自定义的button。

建立module和component只需要在IDE中右键,其余的就自然明白了。下面趁热打铁,说一说通信上的事情。
首先,调用主程序的方法或者属性,都可以用parentApplication.sth来调用。理论上来说只要module可以调用主程序中的方法,那么 module和Application之间的所有数据交互任务就都可以完成了,只是实现起来会比较麻烦,我这样做过,包括module和module之间 通信,可以通过Application作为桥。而更为高级一点的技术是通过自定义事件和接口契约来进行更为随意的通信。比如说Application要和 Module通信,那么首先要明确module要提供出什么方法A(),然后定义一个接口,这个接口要继承IEventDispatcher,然后此接口 声明module想要提供的方法A(),之后module要实现这个接口,把A()方法实现,还要声明一个特定类型的事件,然后Application中 声明一个ModuleLoader,要通信的Module跟其关联,然后通过child as 接口的名字获得接口就可以监听特定事件,也可通过那个接口调用Module的方法了。听起来挺复杂的,其实确实挺复杂的。要比较了解接口和自定义事件,要 不挺难整明白到底怎么回事的。总之就是通过接口
和自定义事件来完成很随意的通信,不过实现起来还真是挺有难度的。
上面听起来挺蒙的,缕一下,就是通过一个接口(Module实现它,主程序通过Module获得它),来监听Module的事件和调用Module的方 法。对,就是这个意思。

通信上总结一下,Module和component都是可以parentApplication来调用主程序的方法和属性的;component可以指定 id,然后Application可以通过id直接调用component中的对外方法;Module貌似是行不通的,我没实现过,有人弄通了指教一下 哈;通过自定义事件是可以进行比较方便的通信,component和Module都可以;如果中间加上接口的话会更好,结构更清晰,解耦性更好,但同时实 现起来也相对麻烦些。本人经验尚浅,如有不妥,敬请指正~
-----转载
分享到:
评论

相关推荐

    Flex中Module间的通讯和在Application中的切换

    在Flex中,模块(Module)是一种可重用的组件,可以被加载到主应用程序(Application)中,以实现代码的模块化和复用。 在Flex中,模块间的通信主要通过以下几种方式实现: 1. **事件监听**:模块可以通过发布...

    Flex Module间通信

    Flex模块间通信是Adobe Flex应用程序开发中的一个重要概念,它允许不同模块之间共享数据、功能和服务。在大型项目中,模块化设计有助于代码组织和管理,提高代码复用性,同时降低复杂度。本示例将深入讲解如何在Flex...

    Flex 基于Module模块的开发资料完整版

    - **原理**:Flex 应用程序由两种类型的 SWF 文件组成:Application(最外层容器为 `&lt;s:Application&gt;`)和 Module(最外层容器为 `&lt;mx:Module&gt;`)。Application 类型的 SWF 可以独立运行,而 Module 类型的 SWF ...

    FlexModule_j2ee.part1

    the Flex 3 compiler module for J2EE application servers.

    FlexModule_j2ee Flex 与JSP 整合用的.jar 文件

    FlexModule_j2ee的核心是将Flex组件与JSP页面集成,通过这个.jar文件,开发者可以在JSP中引入Flex标签,如`&lt;flex:mx:Application&gt;`等,这些标签能够直接在JSP页面中嵌入Flex组件,使得Flex的应用能够在JSP环境中无缝...

    Flex component

    标题中的“Flex Component”指的是Adobe Flex中的组件,它是一个开源框架,主要用于构建富互联网应用程序(RIA)。Flex组件库包括了一系列预定义的用户界面元素,如按钮、文本输入字段、列表等,开发者可以使用这些...

    Adobe Flex 3 Component Explore

    Flex 3的学习过程中,Component Explore 还可以帮助开发者理解MXML,这是一种声明式语言,常用于定义Flex应用的界面布局和组件结构。通过观察MXML代码与最终显示效果的对应关系,学习者可以更好地掌握MXML的语法和...

    flex 的基础入门书+flex组建大全(component explorer)

    flex 的基础入门书+flex组建大全(component explorer),帮你尽快走进flex

    FlexModule_j2ee.zip

    这个项目旨在展示如何在传统的Web应用中嵌入富互联网应用程序(Rich Internet Application,RIA)的Flex界面,从而提供更加动态和交互式的用户体验。 Flex是一种用于创建RIA的开源框架,由Adobe公司开发,主要使用...

    flex一个动态添加卸载Module的例子

    在这个例子中,我们将深入探讨如何在Flex中动态添加和卸载Module。 模块(Module)是Flex应用程序的一个重要组成部分,它允许我们将大项目分解为更小、更易于管理的部分。动态加载和卸载Module是优化应用程序性能和...

    Adobe官方Flex3 Module模块设计经典资料(附源代码)

    在Flex3的Module模块程序设计中,在Google中进行了大量的资料查找,综合比较各个资源后,将我认为最有价值的资料放在这里(全英文的)。 下载包中包括: 1、Adobe Creating Mudule Application.pdf 2、相似例子的源...

    flex中moduleLoader加载module时传递参数源代码

    在Flex中,你可以通过以下方式创建和使用`ModuleLoader`: ```xml &lt;mx:ModuleLoader url="path/to/your/module.swf" id="moduleLoader"/&gt; ``` 这里,`url`属性定义了要加载的模块的路径,`id`则用于在ActionScript...

    FlexModule_j2ee Flex JAVA

    不要以为我要5分很高,这个绝对是官网资源,其中包含各位最一直在寻找却找不到即使找到也不好用的 flex-bootstrap-jsp.jar flex-bootstrap.jar flex-webtier-jsp.jar flex-webtier.jar

    Flex批量管理Modules

    在Flex工程中添加Module的方法是:在FlashBuilder中右键工程目录-&gt;Porperties-&gt;Flex Modules, 然后就可以add/edit/remove需要的module了, 但问题 是无论添加多少module都要点击add按钮一个一个添加! 像我们的项目一...

    Adobe+Flex+Component+Explore

    Adobe+Flex+Component+Explore

    Flex动态CSS改变整个application

    在Flex开发中,CSS(Cascading Style Sheets)是一种强大的工具,用于定义用户界面的外观和布局。通过动态地改变CSS样式,我们可以实现应用程序界面的实时更新,为用户提供更丰富的交互体验。本篇文章将深入探讨如何...

    FLEX中文帮助flex中文帮助

    flex中文帮助flex中文帮助flex中文帮助flex中文帮助

    Adobe Flex 3 Component Explore pare1

    Flex 3 Component Explorer 不用多解释吧~~学习Flex 3控件的好手册,分了三个压缩卷,这是第一卷,请下齐三个卷

    flex_component_kit_042307

    此外,Flex Component Kit还支持自定义属性和事件的绑定,使得Flash组件在Flex中的行为可以更加灵活和多样化。通过这种方式,开发者可以充分利用Flex的强大多层架构和数据绑定机制,将Flash组件无缝融入到复杂的Flex...

Global site tag (gtag.js) - Google Analytics