【发布时间】:2018-12-06 12:16:13
【问题描述】:
我有一个应用程序,其中包含几个游戏的 swf。在应用程序的主屏幕上,您有图标,每个图标通过加载 swf 来启动游戏。
在 Android 和 Windows 上一切正常,但在 iOS 上与使用 Box2D 的游戏存在冲突(实际上我使用的是 QuickBox2D,Box2D 的快捷方式)。当我启动包含 Box2D 的游戏时,出现此错误:
TypeError: Error #1034: Type Coercion failed: cannot convert Box2D.Collision::b2ContactID@103666911 to Box2D.Collision.b2ContactID.
at Box2D.Collision::b2ContactID()
at Box2D.Collision::b2ContactPoint()
at Box2D.Dynamics::b2ContactManager$cinit()
at Box2D.Dynamics::b2ContactManager$cinit()
at global$init()
at global$init()
at Box2D.Dynamics::b2World()
奇怪的是,我发现如果我一开始游戏 swf 的名称按字母顺序排在第一位,它可以正常工作,其他所有游戏也可以正常工作。示例 我有 3 个带有 Box2D A.swf、B.swf 和 C.swf 的 swf 游戏。 如果我首先启动 A.swf 它可以工作,B 和 C 也可以工作。 如果我启动第一个 C.swf,应用程序会因错误而冻结。
我知道 iOS 上的编译是不同的,因为 swf 都混在一起了(类似的东西),但是感谢您的帮助!
【问题讨论】:
-
IIRC 使用多个 SWF 需要特殊的预防措施,以便从其他 SWF 引用和类型转换对象。我不记得细节了,因为我从来没有使用过一个以上的 SWF,抱歉。
标签: ios actionscript-3 air box2d