Задача
Как с помощью compc собрать в одном swc все классы?Решение
Казалось бы что тут сложного, однако у Adobe на этот вопрос не найдется ответа, пришлось погуглить и использовать следующее решение:<target name="build.swc">
<fileset dir="${src}" id="sources">
<include name="**/*.as"/>
</fileset>
<pathconvert pathsep=" " property="classes" refid="sources">
<chainedmapper>
<globmapper from="${src}/*" to="*"/>
<mapper from="*.as" to="*" type="package"/>
</chainedmapper>
</pathconvert>
<echo message="classes is set to = ${classes} ."/>
<compc debug="${debug}"
include-classes="${classes}"
keep-generated-actionscript="false"
output="bin\${lib.name}.swc">
<incremental>${incremental}</incremental>
<source-path path-element="${src}"/>
<target-player>${flashplayer.version}</target-player>
<use-network>${use.network}</use-network>
</compc>
</target>
понятно, что значение для параметров:
${src}
${lib.name}
${debug}
${incremental}
${flashplayer.version}
${use.network}
придется объявитьPS !
но сходу решение тоже может не заработать, дело в том, что инструкция globmapper чувствительна к наклону слэша, и если вы работаете на Windows как и я. Следует писать:<globmapper from="${src}\*" to="*"/>
PPS. Лучшее решение
Cпасибо Алексей Аникутин, нашлось решение намного проще:<compc debug="${debug}"
keep-generated-actionscript="false"
output="bin\${lib.name}.swc">
<incremental>${incremental}</incremental>
<source-path path-element="${src}"/>
<!-- вместо include-classes используем include-sources -->
<include-sources dir="${src}" includes="*"/>
<target-player>${flashplayer.version}</target-player>
<use-network>${use.network}</use-network>
</compc>
подробнее можно прочитать у Adobe: http://livedocs.adobe.com/flex/3/html/anttasks_4.html#207464

Комментариев нет:
Отправить комментарий