ReferenceError:错误 #1065:未定义变量 JSON
Posted
技术标签:
【中文标题】ReferenceError:错误 #1065:未定义变量 JSON【英文标题】:ReferenceError: Error #1065: Variable JSON is not defined 【发布时间】: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 包装文件”选项并在浏览器中运行应用程序时,它运行顺利。
【问题讨论】:
【参考方案1】:我也遇到过这个问题,花了很多时间试图解决这个问题,直到找到适合我的解决方案。我在 Adobe 论坛的这篇文章中对此进行了解释:http://forums.adobe.com/message/3954031
我希望这会有所帮助。请让我知道这是否也适合您。
编辑:似乎 Adobe 论坛现在已经关闭,所以我在这里发布我的答案:
好吧,经过多次修补,我想我终于找到了一种方法来让它工作!
我创建了一些经过修改的 XML 文件,其中包含 AIR 3.0 所需的配置文件和 经过多次尝试,终于成功了!
我在这里上传了它们: http://www.mediafire.com/?d5e761frl5px4
这些是使 AIR 3.0 正常运行所需的步骤:
将三个文件全部放入文件夹“c:\Program Files (x86)\Adobe\Adobe Flash CS5.5\Common\Configuration\Players”
然后,确保您已将 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”文件夹。
在文件夹“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”。
最后,您必须将文件“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 文件夹中进行更改。这是因为发布设置在 Adobe Flash 中的工作方式。它被硬编码到 DLL 中,因此无法更改。不是很直观。
我认为 AIR SDK 安装应该比这更简单! 我知道 Adobe AIR 是为开发人员设计的,而不是为最终用户设计的,但仍然, 所有这些没有很好记录的升级程序都让人头疼。 我在这(超过半天)上浪费了很多时间,应该是什么 直接升级!
Adobe 应该制作一个 SDK 安装程序,这样我们就不必修补所有这些 每次发布新更新时都容易出错!
嗯,我希望这些 XML 文件对某些人有用并避免进一步的挫折。
编辑 2:我意识到 ios 的 XML 无法正常工作。我上传了一个新的 iOS_AIR3_0.xml 文件,替换了上面链接的同一个 MediaFire URL 中的旧文件(您会看到它的日期比其他文件更新)。
旧 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
【讨论】:
以上是关于ReferenceError:错误 #1065:未定义变量 JSON的主要内容,如果未能解决你的问题,请参考以下文章
Actionscript 3 - 错误 #1065:未定义变量 ArenaMain
PhoneGap 错误 - “未捕获的 ReferenceError:cordova 未定义”
错误“未捕获的 ReferenceError:$ 未定义”[重复]
为啥我在 AngularJS 中收到错误“ReferenceError:未定义类别”?