Как перекомпилировать Flex 4 Framework RSL? - PullRequest
0 голосов
/ 11 июля 2010

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

Я использую директиву компилятора -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.Эти SWF-файлы, очевидно, были скомпилированы Adobe со значением по умолчанию -use-network = true.

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

Ответы [ 2 ]

1 голос
/ 13 июля 2010

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

На данный момент я исключил файл конфигурации Flex из процесса сборки и смог сосредоточиться только на проблеме RSL.Порядок, в котором перечислены -runtime-shared-library-path, важен из-за зависимостей классов и порядка процесса.Кроме того, обязательно скопируйте хотя бы неподписанные RSL в ваш выходной путь.В противном случае вы увидите следующую ошибку: Ошибка № 2032: Ошибка потока.URL: file: ///.../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-debug \;

0 голосов
/ 11 июля 2010

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

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

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

...