ReferenceError: Ошибка № 1065: переменная JSON не определена - PullRequest
4 голосов
/ 25 августа 2011

Я собираюсь взорваться, пытаясь выяснить, как это исправить, поэтому, прежде чем я сделаю это, может быть, вы могли бы помочь мне? Я разрабатываю игру под flash player 11 во flash Builder 4.5.1.21328, и я хотел поиграть с новым материалом, например, с поддержкой JSON, но когда я пытаюсь запустить приложение в Flash Builder, я получаю следующее:

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

Я добавил аргумент компилятора: -swf-version = 13, я скачал флеш-плеер 11 playerglobal.swc и поместил его в нужное место в каталоге флеш-компоновщика, так что я застрял сейчас .. Как исправить это надоедливая штука и включить flash player 11 во flash builder?

Когда я использую опцию «Создать файл HTML-оболочки» для своего проекта и запускаю приложение в браузере, оно работает гладко.

Ответы [ 3 ]

3 голосов
/ 09 октября 2011

Установить параметр времени выполнения компилятора:

-swf-version=13
3 голосов
/ 05 октября 2011

У меня тоже была эта проблема, и я потратил много часов, пытаясь ее выяснить, пока не нашел решение, которое работает для меня.Я объяснил это здесь в этом посте на форумах Adobe: http://forums.adobe.com/message/3954031

Надеюсь, это поможет.Пожалуйста, дайте мне знать, если это работает и для вас.


РЕДАКТИРОВАТЬ: Кажется, что форумы Adobe сейчас не работают, поэтому я публикую свой ответ здесь:


Что ж, после долгих попыток я думаю, что наконец-то нашел способ заставить его работать!

Я создал несколько измененных файлов 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». Не перезаписывайте содержимое папки «AIR2.6», как указано в «Overlay AIR SDK "(http://kb2.adobe.com/cps/908/cpsid_90810.html). Это доставило мне проблемы. Лучше использовать другую отдельную папку. Мои файлы XML указывают на эту новую" AIR3.0папка.

  3. Внутри папки «c: \ Program Files (x86) \ Adobe \ Adobe Flash CS5.5 \ Common \ Configuration \ ActionScript 3.0» создайте новую папку с именем «AIR3»+0,0" .Внутри этой папки скопируйте файл "airglobal.swc", расположенный в "c: \ Program Files (x86) \ Adobe \ Adobe Flash CS5.5 \ AIR3.0 \ frameworks \ libs \ air".

  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"

Да, вы должны изменить это в папке AIR2.6, даже если SDK был помещен в AIR3.0. Это из-за того, как настройки публикации работают в AdobeFlash. Он жестко запрограммирован в DLL, поэтому его нельзя изменить. Не очень интуитивно понятно.

Я думаю, что установка AIR SDK должна быть намного проще, чем эта! Я знаю, что Adobe AIR предназначена для разработчиков, а не для разработчиков.для конечных пользователей, но все же, все эти не очень хорошо документированные процедуры обновления - это боль в заднице. Я потратил ОЧЕНЬ много часов (больше чем полдня) с тем, что должно было быть простым обновлением!

Adobe должна сделать установщик SDK, чтобы мыo не нужно возиться со всеми этими подверженными ошибкам процедурами каждый раз, когда выпускается новое обновление!

Что ж, я надеюсь, что эти XML-файлы кому-нибудь пригодятся и позволят избежать дальнейшего разочарования.


РЕДАКТИРОВАТЬ 2: Я понял, что XML для iOS не работает должным образом.Я загрузил новый файл iOS_AIR3_0.xml, заменив старый в том же URL-адресе MediaFire, который указан выше (вы увидите, что он имеет более новую дату, чем другие файлы).

Проблема со старым XML заключалась в том, чтоу него было , отличное от «AIR for iOS» (я написал «AIR 3.0 для iOS», чтобы отличать его от старой версии).Кажется, Adobe Flash CS5.5 ищет эту строку.Если это «AIR для iOS», то Flash отображает соответствующие параметры для iOS в окне «Настройки AIR для iOS», но если эта строка отличается от «AIR для iOS», то отображаются настройки настольного компьютера AIR.Единственная проблема сейчас заключается в том, что у вас не может быть двух вариантов iOS (2.7 и 3.0), поэтому вам придется переместить файл «AiriPhone.xml» из этой папки, чтобы использовать новый XML для AIR 3.0 для iOS.

То есть вы изменяете поведение приложения, основываясь на содержимом строки, а не на идентификаторе ?!Как насчет локализации?Я не пробовал локализованные версии Flash CS5.5, но подозреваю, что строку нельзя перевести, иначе окно настроек не будет работать.

Таким образом, AIR SDK имеет несколько жестко закодированных имен папок в своих DLL, и Flash Pro CS5.5 изменяет поведение настроек AIR на основе английской строки, которая отображается пользователю в меню, вместо использования идентификатора или любой другой переменной.... Как это неуклюже?

1 голос
/ 26 декабря 2012

У меня была та же проблема, и я считаю, что с вами происходит то, что вы используете в своем браузере более новую версию флеш-плеера, чем та, которую вы используете при отладке с помощью Flash Builder (вы используете автономный проектор флеш-плеера)10.2 или ниже)

Например, я запускал похожий код во флэш-разработке и постоянно вызывал эту досадную ошибку, потому что я использовал fp 10.2 и нацелился на fp 11.1

...