Flash Ripper RSS Readers

+

13.Июнь.2008

Как эффективно писать Flash CS3-приложения во Flex Builder 3

Кто-то скажет, что это уже было, кому-то это покажется извращением, но кому-то это может пригодиться:

Как компилировать FLA-файлы из-под Flex Builder?

Известно, что сегодня самым удобным редактором AS3-кода является Flex Builder, в том числе и для разработки Flash IDE-проектов, являющимися структурированными Flash-приложениями, основанными на FLA-файле.

Хорошо было бы писать код во Flex Builder, компилировать его во Flash IDE и видеть результат в браузере, и желательно все по одном клику.

Но как подружить Flex Builder 3 с Flash CS3 IDE и браузером? Понятное дело — с помощью всемогущего Apache Ant, который может выполнять любые операции из-под Eclipse / FlexBuilder. Но всемогущества Ant, однако, не хватит, чтобы заставить Flash IDE скомпилировать FLA-файл. Зато на этот случай у нас есть JSFL — язык, на котором мы можем многое приказать самой Flash IDE. Но я не могу запустить JSFL-скрипт прямо из Ant. Зато я могу запустить его из bat-файла, а тот могу запустить из Ant. Вот и готово решение:

Flex Builder > Ant > Batch > JSFL > Flash IDE > Браузер > снова Flex Builder — рабочий цикл.

Описание процесса и файлы скриптов для сборки проекта

Итак, есть fla-исходник со всякими важными потрохами, он открыт во Flash IDE и он будет компилироваться. Есть классы, которые вы редактируете во Flex Builder, создав в нем AS3-проект. Подружим их в корне каталога проекта "D:\projects\project\sources\".

Создадим Ant-файл build.xml с инструкциями по сборке:

<!-- build.xml: -->
<project name="Build Project in Flash IDE" default="init" basedir="." >
<property name="file.source.fla" location="D:\projects\project\sources\source.fla"/>
<property name="file.build.bat" location="D:\projects\project\sources\sources\build.bat"/>
<property name="file.flash.exe" location="C:\Program Files\Adobe\Adobe Flash CS3\Flash.exe"/>
<property name="file.browser.exe" location="D:\Tools\IE\6\iexplore.exe"/>
<property name="url" value="http://localhost/?v=0.0.1."/>
<target name="init" depends="increment, build, run"/>
<target name="increment">
<buildnumber file="build.number"/>
</target>
<target name="build">
<exec executable="${file.build.bat}" dir=".">
</exec>
</target>
<target name="run">
<exec executable="C:\WINDOWS\system32\tskill.exe">
<arg line="iexplore /a"/>
</exec>
<exec executable="${file.browser.exe}">
<arg line="${url}${build.number}"/>
</exec>
</target>
</project>

Как легко заметить, Ant выполняет файл build.bat, у которого внутри только одна команда:

REM build.bat:
build.jsfl

А файл build.jsfl в свою очередь заставляет Flash IDE опубликовать открытый в ней FLA-файл вот этим кодом (точно так же делает FlashDevelop):

// build.jsfl:
var doc = fl.getDocumentDOM();
if (doc == null)
{
fl.trace("No documents open");
}
else
{
doc.save();
doc.publish();
}

Вот и все. Назначив во Flex Builder шорткат для команды "Ant Build", вы получите компиляцию во Flash IDE и просмотр в браузере "одним кликом" — сохраняя при этом все преимущества написания кода во Flex Builder 3. А браузер будет переоткрываться каждый автоматически благодаря вызову в Ant-файле команды tskill, каждый раз убивающей процесс браузера по его имени (как научил нас Рома Шупер).

Эта, может быть, сложная для кого-то на первый взгляд конструкция решает множество задач. Достаточно один раз ее настроить за 15 минут и затем пользоваться в свое удовольствие.

Чего я вам и желаю :-)

Учтите: я не разбираюсь в Apache Ant, но все равно им пользуюсь. Парадокс!

Posted by: Rost at 01:40 PM | Comments (17)


++