ReferenceError:错误#1065:未定义变量JSON

时间:2011-08-25 16:41:36

标签: flash-builder flash

我要爆炸试图找出如何解决这个问题,所以在我这样做之前也许你可以帮助我?我正在使用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包装文件”选项并在浏览器中运行应用程序时,它运行顺畅。

3 个答案:

答案 0 :(得分:3)

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

我希望有所帮助。如果这对您有用,请告诉我。


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


嗯,经过多次修修补补,我想我终于找到了最终让它发挥作用的方法!。

我创建了一些带有AIR 3.0和所需配置文件的修改过的XML文件 经过多次尝试,它终于有效了!

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

以下是使AIR 3.0正常运行所需的步骤:

  1. 将所有三个文件放入“c:\ Program Files(x86)\ Adob​​e \ Adob​​e Flash CS5.5 \ Common \ Configuration \ Players”文件夹中

  2. 然后,确保已将AIR 3.0 SDK解压缩到“c:\ Program Files(x86)\ Adob​​e \ Adob​​e Flash CS5.5 \ AIR3.0”文件夹中 请勿覆盖“AIR2.6”文件夹的内容,如“Overlay AIR SDK”文章(http://kb2.adobe.com/cps/908/cpsid_90810.html)所示。它给了我一些问题。 最好使用不同的单独文件夹。我的XML文件指向新的“AIR3.0”文件夹。

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

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

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

    我认为AIR SDK安装应该比这简单得多! 我知道Adobe AIR适用于开发人员,不适用于最终用户,但仍然 所有这些没有很好记录的升级程序都是痛苦的屁股。 我已经浪费了很多时间(超过半天),应该是本来应该的 直接升级!

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

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


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

    旧XML的问题在于它有一个< name>除了“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”文件移出该文件夹以使用新的AIR for AIR 3.0 for iOS。 / p>

    所以你要根据字符串的内容而不是ID更改应用程序行为?本地化怎么样?我没有尝试Flash CS5.5的本地化版本,但我怀疑字符串无法翻译,否则设置窗口将无效。

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

答案 1 :(得分:3)

设置编译器运行时选项:

-swf-version=13

答案 2 :(得分:1)

我遇到了同样的问题,我相信你发生的事情是你在浏览器中使用的新版Flash播放器版本比你在使用flash builder调试时使用的版本更高(你使用的是独立的flash播放器投影机) 10.2或更低)

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