我目前正在尝试使用 Adobe Air 在 Android 和 iOS 上运行 Flash 游戏。
虽然 Air 可以很好地在 Android 上运行该应用程序,但我在 iOS 上遇到了麻烦。我实际上能够生成一个 .ipa 包并将其安装到 iPhone(通过 iTunes)。但是,当我从 iPhone 启动应用程序时,没有任何反应(黑屏)。
然后我生成了一个调试 .ipa,它连接到我计算机上运行的 FDB 调试器,调试器在应用程序启动时显示给定的错误:
#error 1107 the abc data is corrupt attempt to read out of bounds
在互联网上搜索并没有多大帮助。这个问题是已知的 ( https://bugs.adobe.com/jira/browse/SDK-14054 ) 但这对我的情况没有帮助。有人有同样的错误并通过从他的 flash 应用程序 (http://sierakowski.eu/list-of-tips/102-building-ios-app-with-adobe-air-things-learnt-when-developing-colorbyshape-app.html) 中删除一些 3D 补间动画来修复它,但我没有使用补间。
知道如何解决这个问题吗?或者对将 Flash 游戏移植到 iOS 的其他方法有何建议?
注意:我在 iPhone 3G 和 4S 上试过,结果是一样的。游戏通过 Haxe 编码,生成 .swf 文件。这个主 swf 文件使用其他 swf 和 xml 文件,这些文件存在于 Air 生成的 .ipa 中。
最佳答案
你看过 NME 吗?
如果您已经在使用 Haxe,使用 NME 发布 iOS 版本可能会很容易。
就我个人而言,我发现使用 NME over AIR 在性能上有很大的改进。例如,在 Iain Lobb 的 BunnyMark 基准测试中,iPhone 4 使用 AIR 渲染 500 个带有旋转和 alpha 的兔子获得 16 FPS。 NME 能够以 30 FPS 渲染包含 4750 只兔子的相同演示……增加了九倍。
它并不神奇,但它很简洁,因为它直接编译为 native C++,使用 OpenGL ES 进行渲染。它还适用于 Windows、Mac、Linux、Android、webOS、Flash(当然)和 HTML5。
您的应用程序中是否有任何特定于 Flash 的内容?
最大的“陷阱”是 NME 本身不支持 SWF 内容,但是有一个 SWF 库非常接近,并且在 C++ 中运行。它在 Windows 中运行良好,但我需要测试并确保它在 iOS 上运行。
关于iphone - #error 1107 在 iPhone 上运行 flash 游戏时,使用 Adobe Air,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8822711/