Я пытаюсь создать свой проект Flex 4 с помощью ant. В Flash Builder 4 в свойствах проекта можно установить для параметра «Связь фреймворка» одно из следующих значений: «Объединено с кодом», «Общая библиотека времени выполнения (RSL)» или «Использовать SDK по умолчанию (общая библиотека времени выполнения)». Как я могу установить эквивалент в качестве параметров mxmlc в build.xml?
Мой текущий build.xml выглядит так:
<target name="myapp">
<mxmlc
file="${PROJECT_ROOT}/myapp.mxml"
output="${DEPLOY_DIR}/myapp.swf"
actionscript-file-encoding="UTF-8"
keep-generated-actionscript="false"
warnings="false" optimize="true" incremental="false" >
<load-config filename="${FLEX_HOME}/frameworks/flex-config.xml"/>
<source-path path-element="${FLEX_FRAMEWORKS}"/>
<compiler.debug>true</compiler.debug>
<runtime-shared-library-path path-element="${FLEX_FRAMEWORKS}/libs/framework.swc">
<url rsl-url="framework_4.0.0.14159.swz"/>
<url rsl-url="framework_4.0.0.14159.swf"/>
</runtime-shared-library-path>
<compiler.source-path path-element="src"/>
<!-- List of external libraries -->
<compiler.source-path path-element="${MY_LIB}/src" />
<!-- List of SWC files or directories that contain SWC files. -->
<compiler.library-path dir="libs" append="true">
<include name="*.swc" />
</compiler.library-path>
<copy todir="${DEPLOY_DIR}" file="${FLEX_FRAMEWORKS}/rsls/framework_4.0.0.14159.swz"/>
<copy todir="${DEPLOY_DIR}" file="${FLEX_FRAMEWORKS}/rsls/framework_4.0.0.14159.swf"/>
</mxmlc>
</target>
Я предполагал, что установка директивы runtime-shared-library-path и копирование swf, swz-файлов фреймворка в мою целевую папку заставит все работать, но, похоже, это не так.
Я оцениваю, работает ли это следующим образом: я использую собственный предварительный загрузчик, и для его работы мне нужно иметь привязку фреймворка как RSL. При «слиянии с кодом» мой предварительный загрузчик застревает в определенном месте и не переходит к моему приложению swf. Это то же самое поведение, которое я наблюдаю, когда использую вышеупомянутый build.xml, что заставляет меня думать, что SWF создается с привязкой фреймворка, объединенной в код (а не связанной с RSL).
Связанный с этим вопрос заключается в том, как определить, использует ли мой swf RSL или нет. Думаю, я мог бы посмотреть на размер скомпилированного вывода. Но, похоже, должен быть способ узнать, использую ли я внешний файл фреймворка или он каким-то образом включен в SWF без моего ведома.