【问题标题】:ReferenceError: Error #1065: Variable JSON is not definedReferenceError:错误 #1065:未定义变量 JSON
【发布时间】:2011-11-03 21:06:19
【问题描述】:

我快要爆炸了,想弄清楚如何解决这个问题,所以在我这样做之前,也许你可以帮助我?我正在 flash builder 4.5.1.21328 中的 flash player 11 下开发游戏,我想尝试新的东西,例如原生 JSON 支持,但是当我尝试在 Flash Builder 中启动应用程序时,我得到了这个:

ReferenceError: Error #1065: Variable JSON is not defined.

我添加了编译器参数:-swf-version=13,我已经下载了 flash player 11 playerglobal.swc 并将它放在 flash builder 目录中的位置,所以我现在卡住了.. 如何修复这个烦人的事情并在 flash builder 中启用 flash player 11?

当我为我的项目使用“生成 HTML 包装文件”选项并在浏览器中运行应用程序时,它运行顺利。

【问题讨论】:

    标签: flash-builder flash


    【解决方案1】:

    我也遇到过这个问题,花了很多时间试图解决这个问题,直到找到适合我的解决方案。我在 Adob​​e 论坛的这篇文章中对此进行了解释:http://forums.adobe.com/message/3954031

    我希望这会有所帮助。请让我知道这是否也适合您。


    编辑:似乎 Adob​​e 论坛现在已经关闭,所以我在这里发布我的答案:


    好吧,经过多次修补,我想我终于找到了一种方法来让它工作!

    我创建了一些经过修改的 XML 文件,其中包含 AIR 3.0 所需的配置文件和 经过多次尝试,终于成功了!

    我在这里上传了它们: http://www.mediafire.com/?d5e761frl5px4

    这些是使 AIR 3.0 正常运行所需的步骤:

    1. 将三个文件全部放入文件夹“c:\Program Files (x86)\Adobe\Adobe Flash CS5.5\Common\Configuration\Players”

    2. 然后,确保您已将 AIR 3.0 SDK 解压缩到文件夹“c:\Program Files (x86)\Adobe\Adobe Flash CS5.5\AIR3.0” 请勿按照“Overlay AIR SDK”文章 (http://kb2.adobe.com/cps/908/cpsid_90810.html) 的建议覆盖“AIR2.6”文件夹的内容。它给我带来了问题。 最好使用不同的单独文件夹。我的 XML 文件指向那个新的“AIR3.0”文件夹。

    3. 在文件夹“c:\Program Files (x86)\Adobe\Adobe Flash CS5.5\Common\Configuration\ActionScript 3.0”中创建一个名为“AIR3.0”的新文件夹。在该文件夹中,复制位于“c:\Program Files (x86)\Adobe\Adobe Flash CS5.5\AIR3.0\frameworks\libs\air”的文件“airglobal.swc”。

    4. 最后,您必须将文件“descriptor-sample.xml”保留在 "c:\Program Files (x86)\Adobe\Adobe Flash CS5.5\AIR2.6\samples" 文件夹, 但将 xmlns 属性更改为“http://ns.adobe.com/air/application/3.0”

    是的,即使 SDK 已放入 AIR3.0,您也必须在 AIR2.6 文件夹中进行更改。这是因为发布设置在 Adob​​e Flash 中的工作方式。它被硬编码到 DLL 中,因此无法更改。不是很直观。

    我认为 AIR SDK 安装应该比这更简单! 我知道 Adob​​e AIR 是为开发人员设计的,而不是为最终用户设计的,但仍然, 所有这些没有很好记录的升级程序都让人头疼。 我在这(超过半天)上浪费了很多时间,应该是什么 直接升级!

    Adobe 应该制作一个 SDK 安装程序,这样我们就不必修补所有这些 每次发布新更新时都容易出错!

    嗯,我希望这些 XML 文件对某些人有用并避免进一步的挫折。


    编辑 2:我意识到 iOS 的 XML 无法正常工作。我上传了一个新的 iOS_AIR3_0.xml 文件,替换了上面链接的同一个 MediaFire URL 中的旧文件(您会看到它的日期比其他文件更新)。

    旧 XML 的问题在于它的 不是“AIR for iOS”(我写了“AIR 3.0 for iOS”以区别于旧版本)。 Adobe Flash CS5.5 似乎在寻找这个字符串。如果是“AIR for iOS”,则 Flash 在“AIR for iOS 设置”窗口中显示适用于 iOS 的相应选项,但如果该字符串不是“AIR for iOS”,则显示的设置是 AIR 桌面设置。现在唯一的问题是您不能同时存在 2 个 iOS 选项(2.7 和 3.0),因此您必须将“AiriPhone.xml”文件移出该文件夹才能使用适用于 iOS 的 AIR 3.0 的新 XML。

    所以您是根据字符串的内容而不是 ID 来更改应用程序的行为?!本地化呢?我没有尝试过 Flash CS5.5 的本地化版本,但我怀疑该字符串无法翻译,否则设置窗口将无法工作。

    因此 AIR SDK 在其 DLL 中有一些硬编码的文件夹名称,Flash Pro CS5.5 根据在菜单中显示给用户的英文字符串更改 AIR 设置行为,而不是使用 ID 或任何其他变量...这有多笨拙?

    【讨论】:

      【解决方案2】:

      设置编译器运行时选项:

      -swf-version=13
      

      【讨论】:

        【解决方案3】:

        我遇到了同样的问题,而且我相信您在浏览器中使用的 flash 播放器版本比您在使用 flash builder 调试时使用的版本更新(您使用的是独立的 flash 播放器投影仪) 10.2 或更低)

        例如,我在 flash develop 中运行了类似的代码并不断提出这个烦人的错误,这是因为我使用的是 fp 10.2 并且目标是 fp 11.1

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-03-25
          • 1970-01-01
          • 2012-06-21
          • 1970-01-01
          • 2014-06-07
          • 2013-07-09
          • 1970-01-01
          相关资源
          最近更新 更多