Бесплатно скачать Adobe Flash Player

Как эффективно писать 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, но все равно им пользуюсь. Парадокс!

Писал: Rost, 13 Июнь 2008 13:40

Комментарии:

пользуйтесь FDT!

Nicolas Prof - 13 Июнь 2008 13:48

Вот только не надо рассказывать что для связки FlexBuilder + FLA (причем компиляция все равно в Flash IDE), FlexBuilder лучший редактор кода :) Flash Develop намного разумнее :)

shaman4d - 13 Июнь 2008 15:49

Nicolas Prof:

пользуйтесь FDT!

Не, как-то переплачивать неохота :-)

Рост - 13 Июнь 2008 17:31

shaman4d:

Вот только не надо рассказывать что для связки FlexBuilder + FLA (причем компиляция все равно в Flash IDE), FlexBuilder лучший редактор кода :) Flash Develop намного разумнее :)

Кстати, эта статья появилась в результате моего переползания с FlashDevelop (который я очень люблю и уважаю) на FlexBuilder.

Почему я переползаю с FlashDevelop на FlexBuilder?


- задолбался переучивать шорткаты при переходе с одного на другое
- у меня появился лицензионный FlexBuilder и я от этого реально тащусь.
- я давно люблю Eclipse как богатую платформу не только для Flash (например, Zend Studio для разработки PHP-приложений уже тоже перенесена на Eclipse).
- FlexBuilder удобен: ставишь и работаешь.
- отличная поддержка SVN

Flash Develop намного разумнее :)


А почему? Можешь аргументировать?

Рост - 13 Июнь 2008 17:39

Ага, вот именно. Переплачивать. ФДТ крут, но, на мой взгляд, того, что за него требуют, не стоит. Грызите меня, любители ФДТ :-)

На лицо добрый - 13 Июнь 2008 17:45

Насколько я понимаю, в этом способе FB не дает автоподсказок, навигации по ресурсам и т.п.?

Не совсем понимаю, чем хуже писать AS 3.0 проект в билдере, подключая ресурсы из .swc-файлов, скомпилированных с помощью kit'a для Flash IDE.

Slon_vsapogah - 13 Июнь 2008 19:09


- у меня появился лицензионный FlexBuilder и я от этого реально тащусь.

буржуй! :)


- FlexBuilder удобен: ставишь и работаешь.

:) Вот для меня это самое ценное, что может быть в программных инструментах/средах. Но...
Когда программист приходит на новую работу, он переустанавливает всё. Ибо зарплата капает, а процесс не напряжен. Потом ещё месяц-другой можно будет входить в курс дела и т.п. Для многих такие вещи ("ставишь и работаешь") не приятны, ибо разрушают их бизнес-модель.

Alexey - 13 Июнь 2008 20:17

ФДТ, как AS3-редактор, удобнее, полнее и мощнее Флекс Билдера.

Хотя, не могу не признать, в редакторе ФБ есть некоторые забавные фишки, которых ФДТ лишён. Одна из таких фишек - список имён событий для после набора .addEventListener(.. , очень жалко, что в ФДТ до этого не дошли.

Собственно, я не согласен только с утверждением, что ФБ - самый удобный. Самый удобный - ФДТ, просто дорогой.

ФБ и ФДТ не конкуренты. Я не думаю, что стал бы писать флексовые классы в ФДТ, и уж тем более классы для флэшового проекта в ФБ.

К счастью, и тот и другой мне проставила работа, нет необходимости выбирать : Р

DeliMIter - 13 Июнь 2008 21:32

Читал с нарастающим интересом до "Понятное дело — с помощью всемогущего Apache Ant". Это облом :о((
Когда был маленький очень любил писать батники. Щаз люблю кнопки, все что можно сделать мышкой, желательно ей и делать, поэтому видал я этого муравья в белых тапках :о(

Даешь муравью - муравейник!

Нажмём "Создать Ant-файл" - введем "build.xml"
Нажмем "Добавить проперть"
Нажмем "Добавить проперть"
Нажмем "Добавить проперть"
Нажмем "Добавить таргет"
Нажмем "Добавить таргет"

GB - 13 Июнь 2008 21:34

Когда программист приходит на новую работу, он переустанавливает всё. Ибо зарплата капает, а процесс не напряжен. Потом ещё месяц-другой можно будет входить в курс дела и т.п. Для многих такие вещи ("ставишь и работаешь") не приятны, ибо разрушают их бизнес-модель.

Программисты будущего, придя на новую работу, будут переустанавливать все, увольнят директора и заново прокладывать сеть. Оно и понятно - свои-то грабли не так больно бьют :-)

Друг человеков - 14 Июнь 2008 3:16

Когда был маленький очень любил писать батники. Щаз люблю кнопки.
Понимаю. Но тут может оказаться, что жизнь идет по синусоиде. То ест ты еще можешь полюбить батники и клавиатуру. Надеюсь, тогда ты вспомнишь об этом посте! :-)

Друг человеков - 14 Июнь 2008 3:17

Так, але, батники-фигатники, чем Flash Component Kit или как он там хуже этого способа? :)

Slon_vsapogah - 14 Июнь 2008 11:28

Apache Ant рулит =)

nouba - 14 Июнь 2008 12:24

Макс, причем здесь Kit =)?

vooparker - 17 Июнь 2008 15:06

Flex-овый автокомплит - полное дерьмо. Пишу резко, потому что вот прямо сейчас взбесило. До FD ему еще курить и курить взатяг.

Racer - 17 Июнь 2008 16:45

Мужики посоветуйте на русском инфу или ресурс какой нибудь??? Буду сверх благодарен если скините на мыло bigshot_kr@mail.ru...:)

- 26 Июнь 2008 17:22

Супер решение по поводу использования всемогущего Antа для Flash CS3, но в процессе тестирования возникла небольшая проблемка, возможно для опытных девелоперов это не проблема, для всех остальных:

Если процесс компиляции ролика во flash IDE будет занимать какое то время, то броузер откроется не отобразив заветную swf-ку, потому как файла еще нет.

На помощь приходит волшебный элемент waitfor. Небольшой update для кода Роста:

К свойствам:
<property name="file.source.swf" location="D:\projects\project\sources\source.swf"/>

В таргет run:
<waitfor maxwait="5" maxwaitunit="second" checkevery="500">
<available file="file.source.swf"/>
</waitfor>

Теперь броузер запустится, только тогда когда появится необходимая swfка. Ждать ant будет 5 секунд, а проверять есть ли она или нет, каждые пол секунды.

Подробнее тут: http://ant.apache.org/manual/CoreTasks/waitfor.html

demon - 6 Август 2008 12:54



Подписаться на новости (RSS)




Примечания:
Статус документа
: в процессе
   2002-2009 Производство: Ростислав Сирык · О проекте · Подписка на новости (RSS)