当前位置:  开发笔记 > 编程语言 > 正文

将预先存在的项目从Flash 7/AS2移动到Flex/AS3的最佳方法是什么?

如何解决《将预先存在的项目从Flash7/AS2移动到Flex/AS3的最佳方法是什么?》经验,为你挑选了1个好方法。

我有一个针对Flash 7的大型代码库,包含很多 AS2类.我希望我能够将Flex用于任何新项目,但我们路线图中的许多新内容都是对旧代码的补充.

AS2和AS3的语法通常是相同的,所以我开始想知道将当前代码库移植到Flex/AS3有多难.我知道所有与UI相关的东西都是iffy(目前UI是在运行时生成的,有很多createEmptyMovieClip()和attachMovie()东西),但是UI和控制器/模型的东西大多是分开的.

有没有人尝试将AS2代码的大型代码库移植到AS3?这有多难?你遇到了什么样的陷阱?有关进行此类项目的方法的任何建议吗?



1> 小智..:

我在尝试将大量AS2类转换为AS3时遇到的一些值得注意的问题:

包命名

class your.package.YourClass
{
}

package your.package
{
    class YourClass
    {
    }
}

需要进口

您必须显式导入所使用的任何外部类 - 通过其完全限定名称引用它们已经不够了.

接口方法不能标记为'public'

这很有意义,但AS2会让你这样做,如果你有任何需要删除它们.

明确的'override'关键字

任何覆盖父类函数的函数都必须使用override关键字声明,就像C#一样.同样,如果你有扩展其他接口和重新声明功能的接口,那么必须删除那些覆盖(再次,与公共一样,这种表示法无论如何都没有意义,但AS2允许你这样做).

所有Flash内置的东西都改变了

你在上面提到了这一点,但它现在是flash.display.MovieClip,而不仅仅是MovieClip.这个类别中有很多具体细节,而且我找不到所有细节,但这里会有很多烦恼.

结论

我没有完成这个转换到成功的工作,但我能在几个小时内编写一个快速的C#工具来处理除了override关键字之外的所有方面.自动化导入可能很棘手 - 在我的情况下,我们使用的软件包都以一些根级软件包开头,因此很容易检测到.

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有