Как перекомпилировать Flex 4 Framework RSL?

Кто-нибудь знает, как перекомпилировать библиотеки Adobe Flex 4 RSL?

Я использую директиву компилятора -dump-config, чтобы получить файл конфигурации сборки, который IDE FlashBuilder использует для компиляции моего приложения. Затем я передаю этот файл конфигурации в компилятор mxmlc, чтобы можно было выполнить сборку из командной строки. Результаты построения командной строки выводятся в папку, отличную от bin-debug. bin-debug - это путь localtrust, и он будет запускать приложение оттуда без ошибок. Приложение Flash по любому другому пути требует настройки проигрывателя Flash для доверия этому пути или выполнения компиляции с помощью директивы -use-network=false. Я предпочитаю последнее, так как я буду распространять результаты среди пользователей для оценки, и я не хочу просить, чтобы они изменили настройки безопасности Flash Player.

В файле конфигурации сборки не указывается, что базовые RSL должны быть перестроены с использованием ложной директивы -use-network. Сам FlashBuilder даже не компилирует RSL фреймворка. Он просто копирует SWL-файлы RSL из каталога фреймворка в bin-debug. Эти swfs, очевидно, были скомпилированы Adobe со значением по умолчанию -use-network=true.

Итак, я считаю, что мне нужно перекомпилировать RSL. Конечно, любые другие советы о том, как решить проблему, приветствуются.

2 ответа

Решение

Что ж, я узнал больше, чем мне нужно знать о Flex RSL, как перекомпилировать Flex SDK вместе с его неподписанными RSL, и эта перекомпиляция не требуется.

На данный момент я исключил файл конфигурации Flex из процесса сборки и смог сосредоточиться только на проблеме RSL. Порядок, в котором перечислены -runtime-shared-library-path, важен из-за зависимостей классов и порядка процесса. Кроме того, обязательно скопируйте хотя бы неподписанные RSL в ваш выходной путь. В противном случае вы увидите следующую ошибку: Ошибка № 2032: Ошибка потока. URL: файл:///.../cmd-bin-debug/textLayout_1.1.0.604.swf

Наконец, если вам нужно использовать файл конфигурации Flex, выгруженный FlashBuilder, вам нужно преобразовать его, чтобы добавить полные пути к RSL. Также обратите внимание на расхождения между настройками проекта FlashBuilder и тем, что записывается в конфигурацию flex. Я обнаружил, что мне нужно несколько раз сказать FlashBuilder очистить проект, чтобы он обновил файл конфигурации.

Дистиллированная рабочая "перекомпиляция" приведена ниже. Вам нужно будет заменить или объявить переменные для FLEX_HOME и release_build

Сначала укажите подписанный RSL, а затем аварийное переключение, для локального тестирования необходимо установить -use-network=false, иначе проигрыватель выдаст ошибку безопасности Flash

mxmlc -use-network=false \
-runtime-shared-library-path = $ FLEX_HOME / frameworks / libs / framework.swc, framework_ $ release_build.swz,, framework_ $ release_build.swf \
-runtime-shared-library-path + = $ FLEX_HOME / frameworks / libs / textLayout.swc, textLayout_1.1.0.604.swz,, textLayout_1.1.0.604.swf \
-runtime-shared-library-path + = $ FLEX_HOME / frameworks / libs / spark.swc, spark_ $ release_build.swz,, spark_ $ release_build.swf \
-debug = true $ fullfile -output../cmd-bin-debug/$filename.swf

О, и вот удобная команда для копирования RSL в выходной путь: найдите $ FLEX_HOME / frameworks / rsls (-name '.swf' -o -name '.swz') -exec cp {}../cmd-bin -дебаг \;

Теоретически вы должны иметь возможность загрузить весь код из Flex SDK с открытым исходным кодом, создать проект SWC, добавить исходный код из среды Flex и скомпилировать его таким образом. Однако преимущество использования Adobe RSL заключается в том, что плеер может их кешировать. Существует вероятность того, что ваш конечный пользователь никогда не запросит у вашего сервера RSL Flex Framework; уже кэшировав их с какого-то другого сайта.

Тем не менее, я не уверен, что понимаю, в чем проблема. Если вы распространяете приложение среди своих пользователей через веб-сервер, то эти пользователи могут просто просматривать его, как любое другое приложение, и тестировать его таким образом. Папка, используемая Flash Builder, или сценарий автоматической сборки командной строки не должны иметь отношения к возможности пользователя использовать файлы.

Во-вторых, я компилирую все свои приложения в каталог с именем "bin", минуя каталог по умолчанию "bin-debug", предложенный Flex Builder. У меня никогда не было проблем с распространением приложений для просмотра пользователями. Или распространять код другим пользователям из-за этого.

Другие вопросы по тегам