将应用程序从ActionScript2移植到ActionScript3的最佳方法是什么?
我们的应用程序是用ActionScript2编写的,大约有50.000多行代码。我们想将其移植到ActionScript3,并试图找出我们的选择。我们必须手动执行还是可以使用转换器,我们会遇到什么问题?
解决方案
我认为我们永远无法使用自动转换器执行此任务。
转换器可以为我们节省一些步骤或者指出必须进行更改的地方,但是我们必须手动检查代码。
例如,在AS2中引用_level0.variableName可以指向_root级别的movieClip,从HTML容器发送的FlashVar或者由代码本身创建的对象。没有真正的了解方法。 (我们不能在代码中查找varname,因为它也可以从外部计算或者读取。
我们需要有很好的理由进行这种转换。如果由于某种原因AS2不再适合,也许我们应该尝试解决问题,而不是仅仅因为它具有所需的出色功能而转换为AS3.
不久前,我问了一个类似的问题,我们可能会觉得有用:
将现有项目从Flash 7 / AS2迁移到Flex / AS3的最佳方法是什么?
一些较小的任务可能是自动化的(主要是修复程序包声明),但除此之外,我怀疑它是否可以自动化。
从AS2转换为AS3时,我总是处在一段糟糕的时期,主要是因为整个过程没有很好的自动化脚本,而且坦率地说,这很无聊。从长远来看,在仍处于活动状态并且自己进行更新的项目上更新旧的AS2代码是一个好主意,AS3只是一种更好的语言,而AVM2的速度却比AVM1快。
我们可以使用脚本来删除许多属性中的下划线,添加包信息,执行一些基础导入,但是对我来说,发现的最好方法可能就是转储主类或者管理类在FLA的文档类行中,将除构造函数之外的所有内容都注释掉,然后随即开始进行转换和取消注释。它可能看起来很慢,但是我想尝试一次找出40个不同的编译器错误可能最终会变得更慢。
祝你好运,这是必要的工作,但不是有趣的工作。