Как обычно происходит процесс отладки большого флэш-приложения, наcыщенного графикой и работающего со скриптами, как с клиентскими, так и с серверными (например, проводящем аутентификацию пользователя)? А так: если вы не используете MTASC, то сначала вы запускаете компиляцию проекта из среды Flash IDE. Ждете от минуты до двух, и то, если так еще повезет. Затем вручную открываете некую страницу в браузере (типа http://localhost/index.php?frob=df2oi-3324-kjlsd-2342), где собственно и тестируете, как все это теперь работает *(коротко об автоматических юнит-тестах -- потом). Ну, а если вы счастливый обладатель Eclipse/FDT/MTASC, то вы запускаете компиляцию, которая происходит значительно быстрее -- всего секунда, и готово! А потом происходит самое страшное: вы снова вручную открываете нужную вам страницу в браузере. А, чуть не забыл, в Eclipse/FDT есть опция "открыть swf во флэш-проигрывателе" после компиляции -- спасибо, но мне не это нужно! Мне нужно в браузере, и не swf какой-нибудь, а конкретную страницу с этим swf и еще джаваскриптами, передающими ему пару параметров, и эта страница должна быть на моем сервере, пусть и локальном. И еще хочу, чтобы swf гарантировано не кешировался: то есть хочу передать ему параметр типа app.swf?v=0.1.15 (об этом в следующей статье). А вы мне -- "открыть swf после компиляции". А я можт жить хочу, а не страницы эти ваши после компиляции вручную открывать -- и каждый раз одним и тем же роботизированным действием, чорт побери, вот за что обидно! Это тебе любой дурак скрипт сможет сделать.
И такой скрипт есть, и может он все, а называется он Apache Ant. И тот, кто его попробовал, навсегда запомнит запах скорости, а заодно получит много свободного времени для написания таких длиннющих статей и чтения еще более длинных.
Потому что теперь процесс отладки будет выглядеть так: ты работаешь в Eclipse и пишешь код. Нажимаешь Ctrl+Enter. Через секунду видишь результат компиляции в реальной рабочей среде своего сайта, а не в сиротливом окне Standalone-проигрывателя. И чувствуешь себя человеком.
Но как это все воплотить? Очень просто: первое, что нужно сделать, это прочесть офигенную, фундаментальную статью Константинера о том, как правильно использовать инструмент Ant для безболезненной, мультиплатформенной, самоконфигурирующейся и абсолютно корректной сборки проекта: "Разработка Flash-проектов с использованием Apache Ant (доклад на семинаре New Media)". У него в начале статьи есть ссылка на его же замечательную презентацию об Ant: сначала посмотрите ту презентацию. Потом прочтите статью до конца. До конца я сказал. Потом вернетесь сюда.
Признаюсь честно, я в статье той не все понял, да и не нужно все понимать, от этого можно стать всепонимающим. А нам нужно работать и жить с легкостью.
Прочтя статью Кости (уже два раза, ясно вам? *вздымает руки к небу*), я понял и запустил главное, хотя и не самое правильное с точки зрения той статьи: это так называемый билд-файл, который, будучи запущенным из среды Eclipse, делает все то, о чем я так мечтал. Его задача -- помогать мне дебажить и только это (именно в моем случае! Ant может все в других случаях).
Пошаговые инструкции для настройки процесса гуманного дебага (все происходит в среде Eclipse):
<?xml version="1.0"?> <project default="build" basedir="."> <property name="mtasc.path" value="C:\Program Files\Mtasc\mtasc.exe" /> <property name="matsc.args" value='App -version 8 -swf "d:\projects\[PROJECT]\bin\app.swf" -cp "[DISC]:\Documents and Settings\[USERNAME]\Local Settings\Application Data\Macromedia\Flash 8\en\Configuration\Classes" -cp D:\Projects\[PROJECT]\classes -cp D:\Swf\classes' /> <property name="web.browser.path" value="c:\Program Files\Firefox\Firefox.exe" /> <property name="output.html" value="-url http://localhost/[PROJECT]/index.html" /> <!-- property name="flash.player.path" value="c:\Program Files\Macromedia\Flash 8\Players\Debug\SAFlashPlayer.exe" / --> <!-- property name="flashcommand.path" value="'c:\Program Files\FlashCommand\FlashCommand.exe'" / --> <!-- property name="" value="" / --> <target name="build" depends="mtasc.compile, run.html" /> <target name="mtasc.compile"> <exec executable="${mtasc.path}" > <arg line="${matsc.args}" /> </exec> </target> <target name="run.html"> <exec executable="${web.browser.path}" > <arg line="${output.html}" /> </exec> </target> </project>
Теперь можно работать.
Как назначить запуску этого билд-файла шорткат Ctrl+Enter -- объяснять не надо?
Фрейм с билд.xml девственно чист.
Уже полон. Это я его еще редактировл. По живому работаем ))
Теперь все это дело на мою семнашку без горизонтального скролла не запиндюривается :(
да и на 19" тоже а вот на 2 моника - даже место остаеться %))))
бээ.. мээ... вы о чем?
Хорошая статья! спасибо! уже скачал Ant :)
а то в среднем в день часик на компиляцию уходит :(
Классная статья. Респект автору.
а кэш в браузере тоже ант почистит?
Viktor, ant и кеш почистит, и посудо помоет и кошку накормит ;)
Об очистке кэша антом я завтра напишу, а вот о том, как избежать кэширования swf-файлов с помошью anta я как раз только что нечаянно написал Ж-)
Я не понял только одного: что по замыслу автора статьи скоро должен объяснить Клишин?:)
Как Эклипсом правильно пользоваться, вот что ;-)
Спасибо :)
Constatiner, __I_ -- я все пофиксил.
А вы, значит, IE полюбляете ;)
Я в своем Фаерфоксе ничего этого не видел, во как..
клёвая статья! автор малодец!
у меня тоже Фаерфокс.. и тоже тишина
Честно говоря, с путями не до конца понятно
В целом, да... Ant рулит еще с тех пор как собирались и собираются проекты под Java. Используем сейчас для Flex, благо Flex SDK стала обычной программерской development kit, компилятор более менее, swc те же jar'ники и т.д. Собственно, добро пожаловать господа флэшисты в мир обычных девелоперов. Но советую использовать Ant только для сборки билдов, повседневной разработке flex билдер работает резвее, особенно когда классов много и тасков в ant'e прибавляется, особенно когда проект включает модули на разных технологиях. Рост, респект, технологии в жизнь, а то стал замечать среди флэшистов - пытаются придумать свое, когда это уже есть и используется при разработке многие годы. Или того хуже мучаютсяи не знают.
Вообще замечено что флешеры тяжело признают ошибки( Как раз готовлю редизайн и уже намучился. На 3 шаге я торможу...Буду в 20 раз пробывать.. Спасибо за инфу