Flash as3 ios:错误 #2007:参数可能出现多个 swf 中的符号冲突,abc env 必须为非空



我正在使用 Flash air 开发一个 iOS 应用程序,版本 3.8,此版本允许我加载带有资产、Flash Professional cs6 和 Flash builder 4.7 的外部 swf

我有某种大厅,用户可以在其中选择不同的游戏。如果我只使用 1 个游戏 (1 swf) 部署应用程序,我会毫无问题地加载游戏

但是,如果我将应用程序与其他游戏一起部署,我只会加载其中的 1 个 swf,但其他游戏会给我此错误:

错误 #2007:多个 SWF 中的参数可能符号冲突,ABC 环境必须为非空

参数 abcenv 在我的代码中不存在。

提前致谢

我发现了与 AIR 3.9 完全相同的问题 您只能通过将游戏逻辑嵌入主菜单并根据需要构造类来执行此操作。我知道这会让你的菜单的初始部分更重。

但是,如果需要,您可以将 swfs 作为库资源加载。我认为该错误与 swfs 和重叠类的限制以及您只能使用一个应用程序域的事实有关。但这是我对此潜在限制的最佳猜测。如果您确实找到了解决方法,请告诉我们。

我遇到了这个错误,今天解决了它。在谷歌之后,我发现没有什么可以提供帮助。现在也许我是唯一一个轻松解决问题的人。这是我的故事:

  1. 正在处理 AIR 动作脚本移动项目。
  2. 在适用于 iOS 的临时包中,成功加载多个 SWF 文件,但两个文件除外。这两个会导致"错误 #2007:参数可能的交易符号冲突......"错误
  3. 发现普通SWF和错误SWF
  4. 之间存在非常小的差异:在错误SWF中,一个MovieClip是3D转换的,我看到MovieClip上方有三个3D轴。然后,我从舞台和库中删除了影片剪辑,并替换为新的影片剪辑。问题解决了。
  5. 请注意,我没有重命名任何内容,也没有删除任何重复的内容。实际上,SWF 文件中有许多重复的内容(具有相同名称的图像文件和在 SWF 之间复制的影片剪辑)。

我遇到了同样的问题。问题是 AIR for iOS 必须将所有外部 .swfs 编译在一起,因此如果存在命名冲突,可能会导致麻烦。如果两个或多个 .swfs 是由同一个克隆.fla创建的,即使其中一个文件对其进行了更改,这似乎尤其是一个问题。

就我而言,事实证明,要加载的.swfs文件夹中有几个未使用的早期版本的.swfs(例如external_movie-prev.swf)。我能够通过删除这些额外的文件轻松解决问题。

这是开发中的常用技术,只是重命名文件的先前版本并将新版本添加到文件夹中进行测试。在正常的软件开发中,这些无关的版本不会造成伤害。但在 AIR for iOS 的情况下,当您尝试播放 assets 文件夹中也有未使用的先前版本的电影时,这种情况可能会导致您的应用程序莫名其妙地冻结。这花了我几个小时来追逐,所以我希望它能帮助其他人。

最新更新