一种实现Flex动态加载新增类的方法和系统与流程

文档序号:13743292阅读:138来源:国知局
技术领域本发明涉及数据业务技术领域,特别涉及一种实现Flex动态加载新增类的方法和系统。

背景技术:
Flex是一个高效、免费的开源框架,可用于构建具有表现力的Web应用程序,实现跨浏览器、桌面和操作系统。目前flex开发过程中无法实现像Java那样在程序运行时动态加载某个类,如果需要在开发的主应用组件库Flexlibraryproject中增加一个类,仅将Flexlibraryproject生成了swc文件放入已经编译完成的swf文件的路径下,根本无法访问新增加的类,这就导致我们必须把swc文件放入主应用工程FlexProject中重新编译swf文件,同时为了引用新增的类,我们还必须在FlexProject中去改写代码来引用新增的类,与Java中的引用完全不同,没有FlexProject原开发人员的参与,很难实现Flex应用的二次开发。

技术实现要素:
有鉴于此,本发明的主要目的在于提供了一种实现Flex动态加载新增类的方法和系统,用于解决由于受Flex技术的限制很难实现Flex应用的二次开发的技术问题。为达到上述目的,本发明的技术方案是这样实现的:本发明提供了一种实现Flex动态加载新增类的方法,该方法包括:步骤A,在主应用组件库中定义一个接口,将主应用组件库中的实现该定义接口的已有类编译成一个主swc文件,并将所述主swc文件放入主应用工程中;步骤B,在做二次开发时,创建一个第三方类库,所述第三方类库中包含实现该定义接口的新增类;步骤C,将所述第三方类库编译成一个第三方swc文件;步骤D,将所述第三方swc文件也放入主应用工程中,并在动态组件列表配置文件中对所述新增类进行配置;步骤E,由主应用工程中对所述第三方swc文件和所述主swc文件执行Ant编译生成新的主应用swf文件,并在动态组件使用配置文件中对所述新增类进行配置以在主应用中动态加载该新增类。可选地,该方法还包括:如果还需要动态加载实现该定义接口的另外的新增类,则在步骤B创建的所述第三方类库中增加该另外的新增类,并重新执行步骤C至步骤E。其中,所述新的主应用swf文件覆盖之前的主应用swf文件,或者所述新的主应用swf文件以不同的命名保存在与之前的主应用swf文件同一路径下。其中,所述主应用工程中提供Ant编译脚本、Flex软件开发工具包、动态组件列表配置文件和动态组件使用配置文件。其中,所述由主应用工程中对所述第三方swc文件和所述主swc文件执行编译生成新的主应用swf文件包括:主应用工程中对所述第三方swc文件和所述主swc文件执行Ant编译,由Ant读取动态组件列表配置文件,将实现该定义接口的所有组件进行声明,并调用Java的输入输出端口实现文件读写,以使动态组件列表配置文件配置的组件全部被编译进新的主应用swf文件。本发明还提供了实现Flex动态加载新增类的系统,该系统包括主应用组件库、第三方类库和主应用工程,所述主应用组件库,用于定义一个接口,将主应用组件库中的实现该定义接口的已有类编译成一个主swc文件,并将所述主swc文件放入所述主应用工程中;所述第三方类库,在做二次开发时创建,用于将实现所述定义接口的新增类编译成一个第三方swc文件,并将所述第三方swc文件也放入所述主应用工程中;所述主应用工程,用于在动态组件列表配置文件中对所述新增类进行配置,以及对所述第三方swc文件和所述主swc文件执行编译生成新的主应用swf文件,并在动态组件使用配置文件中对所述新增类进行配置以在主应用中动态加载该新增类。可选地,所述第三方类库,还用于如果还需要动态加载实现该定义接口的另外的新增类,则在创建的所述第三方类库中增加该另外的新增类。可选地,所述主应用工程执行编译生成的新的主应用swf文件,或者覆盖之前的主应用swf文件,或者以不同的命名保存在与之前的主应用swf文件同一路径下。其中,所述主应用工程提供Ant编译脚本、Flex软件开发工具包、动态组件列表配置文件和动态组件使用配置文件。其中,所述主应用工程,具体用于对所述第三方swc文件和所述主swc文件执行Ant编译,由Ant读取动态组件列表配置文件,将实现该定义接口的所有组件进行声明,并调用Java的输入输出端口实现文件读写,以使动态组件列表配置文件配置的组件全部被编译进新的主应用swf文件。与现有技术相比,本发明的有益效果是:针对现有的技术方案由于受Flex技术的限制很难实现Flex应用的二次开发的技术问题,本发明的技术方案通过创建一个第三方类库,在第三方类库中包含实现该定义接口的新增类,通过将该第三方类库编译成的第三方swc文件,与主应用组件库中实现该定义接口的已有类编译成的主swc文件一起放入主应用工程中,并在动态组件列表配置文件中和动态组件使用配置文件中对该新增类进行配置,最后由主应用工程中对该第三方swc文件和该主swc文件执行Ant编译生成新的主应用swf文件,从而实现在主应用中通过该定义接口动态加载该新增类。本技术方案主要是通过Ant编译解耦了主应用和类库,便于进行二次开发,如果不使用本方案,每次做二次开发,必须对主应用的代码进行修改,也就是说主应用开发者必须参与二次开发;使用了本方案在做二次开发时,主应用开发者可以不参与,从而大大降低开发成本。附图说明图1为本发明实施例提供的一种实现Flex动态加载新增类的方法的示意图;图2为本发明实施例提供的一种实现Flex动态加载新增类的系统的结构图。具体实施方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。本发明的整体思路是:在做二次开发时创建一个第三方类库,第三方类库中包含需要动态加载的新增类,由该第三方类库编译成一个第三方swc文件,与主应用组件库中的已有类编译成的主swc文件一起放入主应用工程FlexProject中,并在主应用工程FlexProject中对该第三方swc文件和该主swc文件执行Ant编译生成新的主应用swf文件,从而实现在主应用中动态加载该新增类。在Flex技术开发中,主应用分两个工程,一个是FlexProject,主应用入口,以下统称为主应用工程;一个Flexlibraryproject,为主应用入口的组件库,以下统称为主应用组件库。FlexProject是一个WEB工程,它对swc文件执行编译生成的主应用swf文件,可以通过浏览器访问。在FlexProject中提供Ant编译脚本、Flex软件开发工具包(SoftwareDevelopmentKit,SDK)、动态组件列表配置文件和动态组件使用配置文件。如图1所示,本发明实施例提供的一种实现Flex动态加载新增类的方法,该方法主要包括如下步骤:S110,在主应用组件库Flexlibraryproject中定义一个接口,将主应用组件库中的实现该定义接口的已有类编译成一个主swc文件,并将主swc文件放入主应用工程FlexProject中。在主应用组件库Flexlibraryproject中定义一个接口,FlexProject中的需要动态加载的组件都是通过此接口调入FlexProject中,将主应用组件库中的实现该定义接口的已有类编译成一个swc文件,为了区分需要,称为主swc文件,此主swc文件要放入到FlexProject中以供主应用调用。如果是第一次开发,则在主应用工程FlexProject中,对该主swc文件执行Ant编译生成主应用swf文件,并在动态组件列表配置文件中和动态组件使用配置文件中对已有类进行配置以在主应用中通过该定义接口调用。S120,在做二次开发时,创建一个第三方类库,所述第三方类库中包含实现该定义接口的新增类。在做二次开发时我们需要再建立一个类似于主应用组件库Flexlibraryproject的第三方类库,此第三方类库中包含了实现该定义接口需要新增的类,这些新增的类与主应用组件库中的已有的类都实现了主应用组件库中的定义接口。S130,将该第三方类库编译成一个第三方swc文件。第三方类库也会被编译成一个swc文件,我们称之为第三方swc文件。S140,将该第三方swc文件也放入主应用工程FlexProject中,并在动态组件列表配置文件中对所述新增类进行配置。在主应用工程FlexProject中将第三方swc文件引入,同时在动态组件列表配置文件中对第三方swc文件中的动态加载类进行配置。此时,第三方swc文件和主swc文件都放入了主应用工程FlexProject中,此时相当于在第三方类库中引入主应用组件库的主swc文件。S150,由主应用工程FlexProject中对该第三方swc文件和该主swc文件执行Ant编译生成新的主应用swf文件,并在动态组件使用配置文件中对所述新增类进行配置以在主应用中动态加载该新增类。具体地,主应用工程FlexProject中对所述第三方swc文件和所述主swc文件执行Ant编译,由Ant读取动态组件列表配置文件,将实现该定义接口的所有组件进行声明,并调用Java的输入输出端口实现文件读写,以使动态组件列表配置文件配置的组件全部被编译进新的主应用swf文件。该新的主应用swf文件可以覆盖之前的主应用swf文件,从而将本次开发的结果作为最终的开发结果。或者所述新的主应用swf文件也可以不同的命名保存在与之前的主应用swf文件同一路径下,从而本次开发的结果并不影响之前开发的结果,程序员可以根据需要选择使用不同次的开发结果。一种可选实施例,当完成上述二次开发后,如果还需要动态加载实现该定义接口的另外的新增类,则在步骤S120创建的第三方类库中增加该另外的新增类,并重新执行步骤S130至步骤S150。具体地,在已创建的第三方类库中包含实现该定义接口的另外的新增类,然后将该第三方类库编译成一个第三方swc文件,接着将该第三方swc文件再次放入主应用工程FlexProject中,并在动态组件列表配置文件中对该另外的新增类进行配置,最后由主应用工程FlexProject中对该第三方swc文件和之前放入的主swc文件执行Ant编译生成另一个新的主应用swf文件,同时在动态组件使用配置文件中对该另外的新增类进行配置以在主应用中通过该定义接口调用该新增类。基于上述的实现Flex动态加载新增类的方法,本发明实施例还提供了一种实现Flex动态加载新增类的系统。如图2所示,该系统包括主应用组件库210、第三方类库220和主应用工程230,所述主应用组件库,用于定义一个接口,将主应用组件库中的实现该定义接口的已有类编译成一个主swc文件,并将所述主swc文件放入所述主应用工程中;所述第三方类库,在做二次开发时创建,用于将实现所述定义接口的新增类编译成一个第三方swc文件,并将所述第三方swc文件也放入所述主应用工程中;所述主应用工程,用于在动态组件列表配置文件中对所述新增类进行配置,以及对所述第三方swc文件和所述主swc文件执行编译生成新的主应用swf文件,并在动态组件使用配置文件中对所述新增类进行配置以在主应用中动态加载该新增类。其中,主应用工程230提供Ant编译脚本、Flex软件开发工具包、动态组件列表配置文件和动态组件使用配置文件。具体地,主应用工程230,用于对所述第三方swc文件和所述主swc文件执行Ant编译,由Ant读取动态组件列表配置文件,将实现该定义接口的所有组件进行声明,并调用Java的输入输出端口实现文件读写,以使动态组件列表配置文件配置的组件全部被编译进新的主应用swf文件。一种可选实施例,第三方类库220,还用于如果还需要动态加载实现该定义接口的另外的新增类,则在创建的所述第三方类库中增加该另外的新增类。需要说明的是,主应用工程230执行编译生成的新的主应用swf文件,或者覆盖之前的主应用swf文件,或者以不同的命名保存在与之前的主应用swf文件同一路径下。综上所述,针对现有的技术方案由于受Flex技术的限制很难实现Flex应用的二次开发的技术问题,本发明的技术方案通过创建一个第三方类库,在第三方类库中包含实现该定义接口的新增类,通过将该第三方类库编译成的第三方swc文件,与主应用组件库中实现该定义接口的已有类编译成的主swc文件一起放入主应用工程中,并在动态组件列表配置文件中和动态组件使用配置文件中对该新增类进行配置,最后由主应用工程中对该第三方swc文件和该主swc文件执行Ant编译生成新的主应用swf文件,从而实现在主应用中通过该定义接口动态加载该新增类。本技术方案主要是通过Ant编译解耦了主应用和类库,便于进行二次开发,如果不使用本方案,每次做二次开发,必须对主应用的代码进行修改,也就是说主应用开发者必须参与二次开发;使用了本方案在做二次开发时,主应用开发者可以不参与,从而大大降低开发成本。以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1