我有一个用 Actionscript 3 编写的游戏,我希望移植到 iOS。该游戏有大约 9k LOC,分布在 150 个类中,大部分类用于数据模型、状态处理和关卡生成,所有这些都应该易于移植。
但是,在所有这些文件中手动调整语法的想法并不太吸引人。有没有工具可以帮助我加快这个过程?
我不是在这里寻找一个神奇的工具,也不是在寻找一个交叉编译器,我只是想要一些转换我的源文件的帮助。
最佳答案
我不知道有什么工具,但如果确实有很多(简单的)代码要转换,这就是我尝试解决您的问题的方法。我敢肯定,我的建议对于特定于 Flash 的部分代码(所有 DisplayObject 内容?)并没有那么有用,而且对于您的许多逻辑也没有那么有用。但是 build 起来会很有趣! :-)
部分自动转换应该是可能的,特别是如果对象只是“数据容器”,注意不要将太多 as3-idiom 带入 objective-c,尽管它可能并不总是很合身。
除非您想为 as3 创建自己的(半)解析器,否则您需要某种解析器,显然是 FlexPMD有一个(从未使用过),可能还有其他的。
在接触到解析器之后,您必须找到一些方法向系统建议哪些部分可以自动转换。对于一般情况,您可以尝试向解析器/生成器脚本添加规则。对于更具体的情况,我会在实际的类/属性/方法上使用自定义元数据,假设真正的 as3 解析器会正确地解析它们。
现在您的部分工作将从手动转换文件转变为手动注释文件,但这对您来说可能没问题。
让解析器解析您的类并根据您的元数据定义操作,这些操作将确定要生成哪种 objective-c 类。如果你得到这个工作它至少可以让你所有的类,它们的简单属性和方法签名(让方法的主体转换可能有点太多要求但你可以将它作为评论包含在内所以你有手动翻译时的一个很好的引用)。
PS:如果你把它变成一个单向过程,请确保你以后不需要重新生成它——如果你发现你一直在修改生成的代码并且不知何故需要重新生成它,那就太糟糕了- 生成所有这些类——这意味着您将不得不重做您所有的辛勤工作!
关于objective-c - 将 Actionscript 语法转换为 Objective C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3870882/