我正在规划一项新的Flash游戏项目,想知道哪种语言更适合使用?我已经对Actionscript 3有很深的理解,但还没有使用过Haxe,不过我已经阅读了语言参考文档,发现Haxe具有我最喜欢的其他语言(如C#和Ruby)的一些功能。
所以我的问题有两个部分:
1)Haxe能否与Flash组件(swc文件)进行互操作?例如,如果我使用Flash IDE来皮肤化某些控件,我可以导入这些控件并在Haxe中使用吗?
2)使用Haxe编译器是否有任何性能优势?或者有什么需要注意的问题?
我正在规划一项新的Flash游戏项目,想知道哪种语言更适合使用?我已经对Actionscript 3有很深的理解,但还没有使用过Haxe,不过我已经阅读了语言参考文档,发现Haxe具有我最喜欢的其他语言(如C#和Ruby)的一些功能。
所以我的问题有两个部分:
1)Haxe能否与Flash组件(swc文件)进行互操作?例如,如果我使用Flash IDE来皮肤化某些控件,我可以导入这些控件并在Haxe中使用吗?
2)使用Haxe编译器是否有任何性能优势?或者有什么需要注意的问题?
1) 是的,也不是。从2.03版本开始,Haxe可以导出SWC文件。这意味着您可以使用Haxe编写代码,编译为SWC文件,然后在Flash中利用该SWC文件。目前,Haxe不支持SWC输入,只支持输出(尽管我相信他们正在开发这方面的功能)。
2) 是的,使用Haxe有一些好处——与Adobe的编译器不同,Haxe在编译过程中实际上进行了一些优化(这已经成为社区内长期存在的争议点)。此外,Haxe还利用了一些“隐藏”的新字节码,这些字节码是在Flash Player 10中出现的,目前既没有Flash也没有Flex使用,只有Adobe的Alchemy(它将C/C++源代码交叉编译成SWC文件)使用了这些字节码。
我知道的唯一一个需要注意的问题是,它有点像奇怪的ActionScript——有些东西不太一样,会让你感到困惑。尽管如此,拥有泛型和更快速的代码等功能,这点小代价还是值得的!