Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 将Actionscript语法转换为Objective C_Objective C_Actionscript 3_Syntax_Porting - Fatal编程技术网

Objective c 将Actionscript语法转换为Objective C

Objective c 将Actionscript语法转换为Objective C,objective-c,actionscript-3,syntax,porting,Objective C,Actionscript 3,Syntax,Porting,我有一个我在ActionScript3中写的游戏,我想把它移植到iOS上。游戏有大约9k LOC分布在150个类中,大多数类用于数据模型、状态处理和级别生成,所有这些都应该易于移植 然而,在所有这些文件中手动重新调整语法的想法并不太吸引人。有没有工具可以帮助我加快这个过程 我不是在寻找一个神奇的工具,也不是在寻找一个交叉编译器,我只是想要一些帮助来转换我的源文件 我不知道有什么工具,但如果真的有很多(简单的)代码需要转换,我会尝试用这种方法来解决您的问题。我相信我的建议对特定于flash的代码部

我有一个我在ActionScript3中写的游戏,我想把它移植到iOS上。游戏有大约9k LOC分布在150个类中,大多数类用于数据模型、状态处理和级别生成,所有这些都应该易于移植

然而,在所有这些文件中手动重新调整语法的想法并不太吸引人。有没有工具可以帮助我加快这个过程


我不是在寻找一个神奇的工具,也不是在寻找一个交叉编译器,我只是想要一些帮助来转换我的源文件

我不知道有什么工具,但如果真的有很多(简单的)代码需要转换,我会尝试用这种方法来解决您的问题。我相信我的建议对特定于flash的代码部分(所有DisplayObject的东西?)没有多大用处,对很多逻辑也没有多大用处。但建造起来会很有趣!:-)

部分自动转换应该是可能的,特别是当对象只是“数据容器”时,请注意不要将太多的as3习惯用法引入objective-c,尽管它可能并不总是很适合

除非您想为as3创建自己的(半)解析器,否则您需要某种类型的解析器,显然有一个(从未使用过),而且可能还有其他的

在掌握了解析器之后,您必须找到某种方法向系统建议哪些部分可以自动转换。对于一般情况,您可以尝试向解析器/生成器脚本添加规则。对于更具体的情况,我会在实际的类/属性/方法上使用自定义元数据,假设真正的as3解析器能够正确地解析这些元数据

现在,您的部分工作将从手动转换文件转移到手动注释文件,但这对您来说可能没问题

让解析器解析您的类,并根据元数据定义操作,这些操作将决定生成哪种类型的objective-c类。如果你能做到这一点,它至少可以让你得到你所有的类,它们的简单属性和方法签名(转换方法的主体可能有点太多了,但是你可以把它作为一个注释,这样你在手工翻译时就有一个很好的参考)


PS:如果你把它变成一个单向的过程,请确保你以后不需要重新生成它——如果你发现你一直在修改生成的代码,并且不知何故需要重新生成所有这些类,那就太糟糕了——这意味着你将不得不重做你所有的艰苦工作

查看Sparrow框架。据称,它的设计考虑到了Actionscript开发人员,重新创建了模拟显示列表之类的类。如果你不想使用CS5包装机,不管你做什么,你都必须进行一些“重新包装”


即使存在某种解决方案,请注意架构逻辑是不同的,还有许多其他细节。 无论如何,即使可能,你也会有一个奇怪的混合体。 我从WWDC2012回来,信息是(一如既往的…)性能和良好的用户体验


因此,您应该使用不同的编程模型进行重写。

我已经开始将一个工具组合在一起,以消除此过程中的低级方面

我试图弄清楚是否有足够的兴趣使它干净、稳定,可以发布给其他人使用。不管怎样,我还是会做的


到目前为止,在将我的一款相当大的游戏从AS3移植到objc时,它为我节省了很多时间。

我认为CS5导出到iPhone工具不合适?我已经尝试过了,但由于它是一个交叉编译器,具有所有需要的功能,因此它的性能并不十分出色。根据我的经验,除了最新的硬件,iOS4一开始就不是我所说的snappy。就我个人而言,我不得不用我的iPodtouch 2G降级到以前的版本,那只是为了使用股票应用程序。您是否在新设备上测试过iPhone Packager项目?我知道这不是一个理想的解决方案,因为很多人都有较旧的硬件,但我最好奇的是iPhone包装机的性能。我买了一台ipad只是为了测试它,但我所有的测试都显示出极低的帧速率,一个简单的位图矩形在屏幕周围平移(没有缩放或旋转)可以产生15-45 fps的速度。我几乎怀疑为ipad生成的代码有问题。好吧,有趣的是,我还没有尝试CS5导出功能。希望Adobe能改进它。如果你要手动移植你的代码,那么可以看看cocos2d框架的2D游戏。Bit101的Keith Peters从AS3开发人员的角度提供了一些教程。