一种AdobeFlex代码自动转换方法技术

技术编号:30375715 阅读:16 留言:0更新日期:2021-10-16 18:05
本发明专利技术公开了一种Adobe Flex代码自动转换方法,该方法包括以下步骤:生成代码转换工具AS2JS;指定代码转换工具AS2JS配置文件的转换目录与输出目录;利用代码转换工具AS2JS的核心工具类对Adobe Flex代码进行核心代码片段的替换;采用代码转换工具AS2JS对Adobe Flex代码源文件进行覆盖、替换与修改,并将Adobe Flex代码编译成html代码;将调试目录的代码转换成发布模块代码,并输出至发布目录。有益效果:本发明专利技术解决ActionScript3转换成JavaScript的实现方式简单,极大降低了大型企业Flex系统重构的开发成本。业Flex系统重构的开发成本。业Flex系统重构的开发成本。

【技术实现步骤摘要】
一种Adobe Flex代码自动转换方法


[0001]本专利技术涉及互联网
,具体来说,涉及一种Adobe Flex代码自动转换方法。

技术介绍

[0002]Adobe Flash Player将在2020年12月31日EOL,此后Adobe将不再发布任何关于flash的更新和补丁;且从1月12日起,Adobe将自动block Flash Player的插件。对于以上消息,将影响全球的互联网科技公司的Flex产品的正常使用,全球公司的Flex产品被迫停止使用或者重新开发、重构。对此,为了解决超大型Flex项目重构引发的大量人力研发费用,推出一套可以自动化将Flex代码转换成html代码的解决方案及产品,在下文会进行介绍。
[0003]在业界目前没有一个成熟的技术方案可以解决这一国际紧急问题,现有的技术方案一般都是用html重新开发一整套系统,或者部分公司尝试使用语言转换工具对Flex产品进行代码转换,目前业界做到最好的Flex产品转html产品的解决方案就是Apache Royale产品,虽然apache开源的royale产品虽然做到了ActionScript3转换到JavaScript的AST能力,但是无法彻底解决flex转html的问题,因为其定位目的是开发者可以使用ActionScript3的语法来开发可被编译成JavaScript语法的html页面,该产品本身就不是为了解决停用Adobe flex后对Flex产品不支持的问题,而是为了保留ActionScript3的语法写法才推出的产品。对于已经被停用的大型Flex产品,目前全球没有完备的解决方案,因此设计出支持超复杂业务场景的Adobe Flex代码开发的Flex系统可转换成可使用的html、javascript的工具是很有必要的。
[0004]针对相关技术中的问题,目前尚未提出有效的解决方案。

技术实现思路

[0005]针对相关技术中的问题,本专利技术提出一种Adobe Flex代码自动转换方法,以克服现有相关技术所存在的上述技术问题。
[0006]为此,本专利技术采用的具体技术方案如下:一种Adobe Flex代码自动转换方法,该方法包括以下步骤:生成代码转换工具AS2JS,对Adobe Flex代码进行语法解析及AS转换JS操作;转换开始,指定代码转换工具AS2JS配置文件的转换目录与输出目录,并开启调试模式或发布模式;代码解析处理,利用代码转换工具AS2JS的核心工具类对Adobe Flex代码进行核心代码片段的替换;生成可执行的html代码,采用代码转换工具AS2JS对Adobe Flex代码源文件进行覆盖、替换与修改,并将Adobe Flex代码编译成html代码;转换完毕,将调试目录的代码转换成发布模块代码,并输出至发布目录。
[0007]进一步的,所述代码转换工具AS2JS采用AS语言特性对Adobe Flex代码进行语法
解析及AS转换JS操作。
[0008]进一步的,所述代码转换工具AS2JS的核心工具CMD.java使用java的BufferedReader类将转换目录、输出目录及调试模式或发布模式读取并存至java的运行过程变量中。
[0009]进一步的,所述代码转换工具AS2JS采用核心工具ConvertList.java进行核心代码的替换,并将Adobe Flex代码不兼容的类型、包名及语法修改成可识别的代码片段。
[0010]进一步的,所述代码转换工具AS2JS采用核心工具CMD.java对Adobe Flex代码源文件进行覆盖、替换与修改。
[0011]进一步的,所述代码转换工具AS2JS利用java AST sdk的主函数及royale扩展组建库,将Adobe Flex代码编译成html代码。
[0012]进一步的,所述royale采用发布模式功能将royale调试目录的代码转换成发布模块代码,并经过整合打包后输出至发布目录。
[0013]进一步的,所述代码转换工具AS2JS自动递归转换后的模块依赖,深度递归转换代码工程,并自动合并转换后的代码目录。
[0014]进一步的,所述代码转换工具AS2JS采用读写工具Reader.java及Writer.java进行深度代码替换及目录拷贝。
[0015]进一步的,Adobe Flex代码转换完成后,代码转换工具AS2JS自动输出html代码转换日志。
[0016]本专利技术的有益效果为:(1)、本专利技术在解决ActionScript3转换成JavaScript时,实现方式简单,只需要依靠转换工具,通过修改配置文件指向转换目录、输出目录,即可快速的将Flex代码转换成html代码,无需重新开发原有的Flex的业务界面功能,极大降低了大型企业Flex系统重构的开发成本。
[0017](2)、本专利技术对所有的flex业务功能、组建均能完全还原,无需担心业务功能缺失;并且,任意多个模块之间可以实现随时动态加载、调用,完全还原了ActionScript3的动态模块加载机制;根据可视化的xml配置文件,使用者只需要关心配置路径以及基本开关即可快速实现Flex转html的能力;同时,转换过程有日志记载,可以清晰看到整个工具的转换链路、执行结果。
[0018](3)、本专利技术修复了apache

royale

debug源码模块的bug,包括:组建编译失败、页面编译后无法使用情况。使用了apache

royale

debug模式来解决了编译出来的javascript不易阅读的问题,配合开源工具webpack的SourceMap功能可以在浏览器的开发者工具里精准的断点调试到编译前的ActionScript3代码片段,可以极为高效的调试组建和业务代码,将整个转换工作从不可能变为可能。
[0019](4)、通过直接修改apache

royale的开源组建库源码,对于原生组件进行扩展实现了所有业界常用的组建并且实现了corelib、bclib核心库解决商用Flex项目的编译失败问题;使用java语言开发出一键代码转换工具AS2JS,可以将互联网所有的Flex代码自动转换一遍,随后自动调用apache

royale的内部AST编译器生成可以直接部署访问的html代码。
[0020](5)、通过自研的AS2JS,模拟浏览器加载资源顺序机制,解决了apache

royale

release模式无法商用标准使用的问题;通过修改源码包实现了动态模块加载能力,攻克了apache

royale的模块化部分,不支持按需动态模块加载,只支持预编译能力,解决了资源文件过大后导致浏览器性能大大降低的问题。
附图说明
[0021]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种Adobe Flex代码自动转换方法,其特征在于,该方法包括以下步骤:S1、生成代码转换工具AS2JS,对Adobe Flex代码进行语法解析及AS转换JS操作;S2、转换开始,指定代码转换工具AS2JS配置文件的转换目录与输出目录,并开启调试模式或发布模式;S3、代码解析处理,利用代码转换工具AS2JS的核心工具类对Adobe Flex代码进行核心代码片段的替换;S4、生成可执行的html代码,采用代码转换工具AS2JS对Adobe Flex代码源文件进行覆盖、替换与修改,并将Adobe Flex代码编译成html代码;S5、转换完毕,将调试目录的代码转换成发布模块代码,并输出至发布目录。2.根据权利要求1所述的一种Adobe Flex代码自动转换方法,其特征在于,所述代码转换工具AS2JS采用AS语言特性对Adobe Flex代码进行语法解析及AS转换JS操作。3.根据权利要求1所述的一种Adobe Flex代码自动转换方法,其特征在于,所述代码转换工具AS2JS的核心工具CMD.java使用java的BufferedReader类将转换目录、输出目录及调试模式或发布模式读取并存至java的运行过程变量中。4.根据权利要求1所述的一种Adobe Flex代码自动转换方法,其特征在于,所述代码转换工具AS2JS采用核心工具ConvertList.java进行核心代码的替换,并将A...

【专利技术属性】
技术研发人员:侯向鹏刘启铨
申请(专利权)人:浩鲸云计算科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1