我们的应用程序是用ActionScript2编写的,有大约50.000多行代码。我们想将它移植到ActionScript3,我们试图找出我们的选择。我们必须手动完成还是使用转换器,我们可以期待哪些问题?
答案 0 :(得分:1)
我刚才问了一个类似的问题,你可能会觉得有用:
What is the best approach to moving a preexisting project from Flash 7/AS2 to Flex/AS3?
一些小任务可能是自动化的(主要是修复包声明),但除此之外我怀疑它可以自动化。
答案 1 :(得分:1)
从AS2转换到AS3时,我总是遇到很糟糕的事情,主要是因为整个过程没有很好的自动化脚本,坦率地说这很无聊。从长远来看,在仍处于活动状态并自行更新的项目上更新旧的AS2代码是一个好主意,AS3只是一种更好的语言,AVM2比AVM1更快。
您可以使用脚本在很多属性中取出下划线,添加包信息,执行一些基本导入,但我发现可能对我来说最好的方法就是转储主要内容或者将管理器类放入FLA中的文档类行中,除了构造函数之外的所有内容都要注释,然后开始转换和取消注释。它可能看起来很慢但我觉得试图找出40个不同的编译器错误可能最终会变慢。
祝你好运,这是必要的工作,但不是有趣的工作。
答案 2 :(得分:0)
我认为你不能使用自动转换器完成这项任务。 转换器可能能够为您节省一些步骤或指出必须进行更改的位置,但您必须手动检查代码。
例如,在AS2中引用_level0.variableName可以指向_root级别的movieClip,指向从HTML容器发送的FlashVar或由代码本身创建的对象。没有真正的认识方式。 (您无法在代码中查找varname,因为它也可以在外部计算或读取。
您需要有充分的理由进行此类转换。如果由于某种原因AS2不再适用,也许你应该尝试解决问题,而不是转换到AS3只是因为它有一个你需要的一个很好的小功能。
答案 3 :(得分:0)
某些在线站点可用于将AS2转换为AS3代码。但根据我过去的经验,它并不好,100%的结果。 AS3中的许多内容都有所改变。所以有些部分你可以自动化,大多数人都可以手动完成。如果在AS2中使用了_global,则可以声明一个名为“_global”的类,该类将包含在AS2中使用_global.XXXX变量的静态变量。
只要想多种方法就可以轻松使用OOP功能。我给你一个_global变量的例子......