Flash Ripper RSS Readers

Сердитая компиляция: как сделать так, чтобы по CTRL+ENTER проект открывался сразу в браузере, да при этом еще на вашем рабочем тестовом сервере, да со всеми параметрами, да при этом чтобы все быстро было

Как обычно происходит процесс отладки большого флэш-приложения, на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):

  1. Создайте файл "build.xml", внесите в него код, приведенный ниже, и положите файл в корень вашего flash-проекта в среде Eclipse.
  2. Смело вперед: кликните по этому файлу правым кликом и выберите "Run As > Ant Build". В консоли посыплются ошибки, да сколько жэ их! Не волнуйтесь. Ведь файл нужно настроить под ваш проект. А пока мы просто убедились, что он хотя б запускается.
  3. Настройка: кликните правым кликом по этому файлу и выберите пункт "Open Witn > Ant Editor". Найдите и отредактируте под себя все строки, заключенные в квадратные скобки, например, [PROJECT], [DISC], [USERNAME]. И вообще: изучите этот файл и измените его под себя. В нем в самом начале указаны свойства (property) -- типа "mtasc.path", "mtasc.args"; а потом в нем указаны так называемые "цели" (target) -- то есть конкретные команды, запускающие все то, что описано в свойствах. Главная цель -- "build". Она занимается тем, что достигает двух других целей -- "mtasc.compile" и "run.html". А те в свою очередь выполняют команды, описанные свойствами в самом начале файла. Все, что вам нужно сделать -- это правильно настроить свойства, а они являются не чем иным, как путями, аргументами командной строки и т.д. Вообще, Ant только тем и занимается, что описывает и запускает некие командние строки и их аргументы. Это как .bat файл, только возможностей больше. Вообще, все это описано в статье Кости, но вы леняти конечно ее до конца не читали, как я вас предупреждал. Ну да ладно. Хорошо, если до этого места хоть дошли!
  4. Снова запуск. Отредактировав все свойства билд-файла под себя, запустите его еще раз. Сообщения об ошибках в консоли очень подробные и кликабельные. Основных ошибок четыре (по количеству свойств, *гомерический смех*):
    1. Неверно указан путь к мтаску ("mtasc.path");
    2. Неверно указаны аргументы мтаска ("matsc.args") -- это вообще главная ошибка, тут нужно не забыть прописать все пути к классам, результирующему swf файлу и .т.д -- обычные параметры МТАСКА, you know;
    3. Неверно указан путь к браузеру;
    4. Неверно указан путь к странице, что браузер должен открыть.
  5. Оргазм.
Код билд-файла:
<?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 -- объяснять не надо?

Прочем, скоро Клишин вам обхъяснит..

Писал Rost, 25 Май 2006 18:30

Найдены баги:

Фрейм с билд.xml девственно чист.

МК - 25 Май 2006 18:42

Уже полон. Это я его еще редактировл.
По живому работаем ))

Рост - 25 Май 2006 18:53

Теперь все это дело на мою семнашку без горизонтального скролла не запиндюривается :(

constantiner - 25 Май 2006 19:20

да и на 19" тоже а вот на 2 моника - даже место остаеться %))))

__i - 25 Май 2006 19:31

бээ.. мээ... вы о чем?

Рост - 25 Май 2006 20:49

Хорошая статья!
спасибо!
уже скачал Ant :)

а то в среднем в день часик на компиляцию уходит :(

Reijii - 26 Май 2006 11:44

Классная статья. Респект автору.

Николай, веб-дизайн студия ControlStyle - 27 Май 2006 23:31

а кэш в браузере тоже ант почистит?

viktor - 28 Май 2006 8:55

Viktor, ant и кеш почистит, и посудо помоет и кошку накормит ;)

Об очистке кэша антом я завтра напишу, а вот о том, как избежать кэширования swf-файлов с помошью anta я как раз только что нечаянно написал Ж-)

Рост - 28 Май 2006 21:58

Я не понял только одного: что по замыслу автора статьи скоро должен объяснить Клишин?:)

МК - 28 Май 2006 23:23

Как Эклипсом правильно пользоваться, вот что ;-)

Рост - 29 Май 2006 0:09

Спасибо :)

viktor - 29 Май 2006 8:29

Constatiner, __I_ -- я все пофиксил.

А вы, значит, IE полюбляете ;)

Я в своем Фаерфоксе ничего этого не видел, во как..

Рост - 29 Май 2006 18:36

клёвая статья! автор малодец!

ливень - 17 Июль 2006 9:37

у меня тоже Фаерфокс.. и тоже тишина

ливень - 17 Июль 2006 9:38

Честно говоря, с путями не до конца понятно

Дмитрий, Екатеринбург ВЕБ-Студия Бурусова - 5 Август 2006 14:46

В целом, да... Ant рулит еще с тех пор как собирались и собираются проекты под Java. Используем сейчас для Flex, благо Flex SDK стала обычной программерской development kit, компилятор более менее, swc те же jar'ники и т.д. Собственно, добро пожаловать господа флэшисты в мир обычных девелоперов. Но советую использовать Ant только для сборки билдов, повседневной разработке flex билдер работает резвее, особенно когда классов много и тасков в ant'e прибавляется, особенно когда проект включает модули на разных технологиях.
Рост, респект, технологии в жизнь, а то стал замечать среди флэшистов - пытаются придумать свое, когда это уже есть и используется при разработке многие годы. Или того хуже мучаютсяи не знают.

Vitek - 17 Август 2006 19:26

Вообще замечено что флешеры тяжело признают ошибки( Как раз готовлю редизайн и уже намучился.
На 3 шаге я торможу...Буду в 20 раз пробывать..
Спасибо за инфу

nezn - 12 Ноябрь 2006 6:56



Это запись из категории 'Tools'. 10 еще cвежих:

Архивы по категориям:

3D-18, Adobe AIR-30, Animation-1, Apache Ant-1, Architecture-1, ARP-1, Art-25, Articles-26, AS3-52, Books-7, Business-3, Cairngorm-2, CI-1, Classes-10, Coding-30, Community-113, Components-19, Contests-28, Cool-Job-5, Debug-18, Design-26, Development-84, EMO-1, Events-13, Extensions-2, FAQ-8, FDS-1, Flash and html-5, Flash Player-35, Flash Updates-8, Flash-scene-1, flash10-4, FlashLite-2, Flex-30, Flex 2-80, Flickr-1, FMS-1, FPUG-46, frameworks-1, Games-11, Good Job!-35, HaXe-14, Health-2, Humor-10, Ideas-13, JavaScript-1, Job-26, JSFL-8, Links-2, Linux-1, Maps-1, Math-8, Money-11, MXML-1, Open Source-15, Optimization-2, Patterns-2, Personalities-27, Politics-1, Preloading-3, Productivity-9, PureMVC-10, Pv3d-1, Rafpug-4, Red5-3, Remoting-11, Resources-21, Ruby-6, SAAS-1, Security-11, SEO-8, Silverlight-5, Sound-3, Strategy-120, Tamarin-1, Tools-113, Training-2, Trash-8, URAFPUG-13, Urgent-1, Usability-6, Video-6, VoIP-5, Wallop-1, Wishlist-2, Архив всех записей (большой)

За последние месяцы:

Июл 2008: Международная встреча разработчиков URAFPUG завершена, URAFPUG - трансляция студии Flex-фреймворка Mate, весь Июл

Июн 2008: Попытка предварительных выводов о встрече аниматоров, Онлайн трансляция встречи аниматоров в Донецке, весь Июн

Май 2008: Если 3D, то по-взрослому: официальный запрос в Adobe по поводу контроля над мип-маппингом. Нужна ваша поддержка!, В этом году «Russian Flash Awards» пройдет в «космическом стиле», весь Май

Апр 2008: Программирование под флэш платформу. Cтатья (местами спорная), Advanced Flash Components бесплатно раздает все свои AS2-компоненты, весь Апр

Мар 2008: Зарплаты программистов в 2007 году, FlashPhone как технология года? Технология года? В Рунете?, весь Мар

Фев 2008: ЙА ФПУГ — регистрация на первую встречу UAFPUG продолжается, Закулисы Flex и секрет успеха опенсорс-проекта, весь Фев





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