Flash Builder 4.6 не компилируется для Flash Player 10.2 - PullRequest
1 голос
/ 12 января 2012

Я новичок в создании приложений Flex и пытаюсь настроить таргетинг на Flash Player 10.2 первым.Я создал его с помощью Flash Builder 4.6 и скомпилировал с использованием 4.5a SDK.Я также установил опцию нацеливания на 10.2.0 в опциях Adobe Flash Player.Когда я создаю сборку релиза, ошибок нет, и полученный HTML-файл содержит следующее:

// For version detection, set to min. required Flash Player version, or 0 (or 0.0.0), for no version detection. 
var swfVersionStr = "10.2.0";

Однако, если я пытаюсь зайти в приложение в браузере с v10.2 плагинаэто говорит, что 11.1 необходимо.У меня также есть та же проблема с простой анимацией Flash CS5, которая использует только stop () и getURL ().Анимация работает, но не останавливается.

Спасибо за подробный ответ wxvxw Я сделал снимок экрана с параметрами компилятора, но не могу показать его здесь, так как я новый пользователь, ноURL-адрес ...

https://lh6.googleusercontent.com/-3xEJ0RTFG-8/Tw9rJt2UloI/AAAAAAAAARs/Ruu9Em66fgo/s800/fboptions.PNG

Я пробовал -target-player 10.2.0 (ранее) и сейчас -target-player 10.2, но ни одна не работала.Я также разместил playerglobal.swc в следующем каталоге: C: \ Program Files (x86) \ Adobe \ Adobe Flash Builder 4.6 \ sdks \ 4.5.0 \ frameworks \ libs \ player \ 10.2

Спасибо,Dan.

Ответы [ 2 ]

3 голосов
/ 08 декабря 2012

У меня был такой же опыт, но дело не в том, что вспышка не была установлена. Я настроил свой проект во Flashbuilder 4.6 для сборки с использованием определенного SDK (Flex 4.5.1A) и определенной версии Flash Player (10.2.0), но мой клиент не смог воспроизвести его во Flash 10.3 (они ограничены их ИТ отдел к этой версии, по-прежнему)

мое исправление: добавьте -swf-версию 10 к дополнительным аргументам компилятора

Я покопался и обнаружил, что 4-й байт файла swf указывает, для какой версии flash он создан; когда я делал экспорт для выпуска сборки, 4-й символ был шестнадцатеричным 0B, а не 0A.

Я запустил swfdump.exe, который был в корзине SDK, и обнаружил, что версия была 11 <swf xmlns='http://macromedia/2003/swfx' version='11' framerate='24' size='10000x7500' compressed='true' >

Я добавил следующее, чтобы получить конфигурацию, которую flashbuilder использовал для сборки проекта -dump-config c: \ testconfig.xml

в этом я нашел <swf-version>11</swf-version>

исходя из этого, я догадался, что нужно установить флаг -swf-version 10 в качестве дополнительного параметра компиляции в свойствах проекта> Flex Compiler

после сборки с этим флагом, swf-версия была 10 в swfdump и дампе конфигурации

3 голосов
/ 13 января 2012

IIRC, SDK, который поставляется с FB 4.6, имеет только библиотеки FP 10.1 и FP 10.3. Итак, чтобы скомпилировать для FP 10.2, вам нужно найти соответствующий playerglobal.swc (возможно, поискать более старые выпуски SDK?).

Теперь, что касается ваших настроек: версия проигрывателя, для которого вы хотите скомпилировать, задается в аргументах компилятора, есть несколько способов сделать это, но похоже, что вы сделали что-то другое :) Для того, чтобы Компиляция для определенной версии плеера, компилятор должен знать, как ведет себя эта версия плеера, то есть ему нужно описание всех встроенных функций, которые проигрыватель имел в то время. playerglobal.swc предоставляет определения для этих функций (поищите в вашей папке SDK возможное местоположение). -target-player - это аргумент компилятора, который вам нужен. Один из способов сообщить компилятору, на какого игрока будет настроен таргетинг, - открыть настройки проекта и в строке дополнительных аргументов компилятора напечатать что-то вроде -target-player 10.2. Обратите внимание, что у вас может не быть соответствующего playerglobal.swc. В этом случае ошибка компилятора примерно укажет на каталог, в котором находится эта библиотека.

В Flash Builder и SDK никогда не было проигрывателя 11+ в качестве требования (более того, SDK даже не тестировался против этой версии), поэтому требование не связано (использовали ли вы Google Chrome для тестирования, может быть, вам нужно проверить about:plugins страницу?). Вы установили некоторую переменную, которая должна сообщать сценарию JavaScript, который используется для встраивания SWF, какая минимальная версия проигрывателя требуется для запуска SWF, это не влияет на сам SWF, это только для информации пользователя (вы должны установить его таким образом, чтобы в случае, если у пользователя установлена ​​более старая версия плеера, ему будет предложено обновить). Если вы использовали генерацию кода FB или задачу Ant, предоставленную Adobe, для генерации HTML-страницы, содержащей SWF, тогда для этой переменной будет задана та же версия, которую вы использовали для компиляции SWF, в противном случае вы можете настроить ее на правильное значение.

...