
На вооружение программисту!

В списке:
1. FlashDevelop
2. DropBox
3. One Note
4. Pix.am
1. Среда разработки
FlashDevelopГде качать: FlashDevelop.org.
Активно развивающийся редактор кода для AS2, AS3, HAXE проектов под Windows. Лучшее из бесплатных что пробовал использоваться для разработки приложений на этих языках. Все необходимые библиотеки можно скачать в том же сообщении, где и ссылка на программу, последний FlexSDK может скачать установщик. Код набирать в нем одно удовольствие. Когда приходится писать в GameMaker, то очень сильно не хватает автокомплита FD.
Фишки на панели:
1) Outline — панель схемы вашего класса.
Эта панель позволяет просмотреть класс, отображая функции, переменные, расширяемые классы и т.д. Пользоваться очень просто, достаточно покликать пару раз, и все станет на свои места. Использую чтобы быстро изучить, осмотреть незнакомые классы.
2) Tasks — панель задач.
Здесь отображаются все комментарии помеченные специальном тегом:
//TODO Добавить звук
Стандартные теги это «FIXME», «TODO», «BUG». Можно добавить свои в настройках Tools -> Settings -> TaskListPanel. Я добавляю «SOUND» и «WTF». «FIXME» меняю на «FIX». Поиск тегов в комментариях затратная процедура, поэтому эта панель обновляется вручную. Нужно кликнуть правой кнопкой мыши, и выбрать пункт «Refresh», после чего начнется поиск тегов. Довольно удобно писать такие комментарии в коде, когда точно знаешь что нужно сделать в этом месте что-то, но пока не можешь.3) Bookmarks — закладки.
Тут все банально, можно сделать закладку по нажатию на Ctrl+F2, и также убрать. Необходимо, когда прыгаешь между двумя методами, которые находятся на большем расстоянии друг от друга.
4) Быстрый поиск — которым не удивишь :).
Поиск появляется по нажатию на Ctrl+F, в виде панельки под текстом, поиск осуществляется сразу же, как начинается ввод.
5) Profiler — до сих пор не научился включать его с первой попытки, поэтому попрошу помочь с этим пунктом в комментариях)
Фишки в коде
1) Ctrl + Shift + 1 — после того как нашел эту комбинацию, скорость написания кода с нуля возросла где-то на 20%.
а) Написали addEventListener(MouseEvent.CLICK, someEventFunction), но за функцию someEventFunction мы еще не брались. Наводим на нее наш моргающий курсор, жмем волшебную комбинацию, и выбираем в появившемся окошке «generate the event handler». Функция появится сразу после той, в которой мы ее вызвали. Курсор сместиться на нее. Очень удобно, я обычно забываю как их объявлять, так как пишу под Flixel, а там событий нет.
б) Очень часто, мы пишем какие нибудь private переменные, которые в будущем будем передавать другим объектам с помощью getter'ов и setter'ов. Для того, чтобы их объявить, достаточно поставить курсор на объявление переменной, нажать волшебную комбинацию клавиш, и выбрать пункт generate..., что нам хотелось бы).
в) Есть переменная, объявленная в методе через var, но было принято решение вынести ее в класс, выбираем объявление этой переменной жмем ВКК и выбираем «add as function parametr».
г) Пишем код, и понимаем, что нам нужен новый метод, с определенными аргументами. Просто используем еще не существующий метод, так как нам хотелось бы его использовать, а потом переносим курсор на его имя, и жмем ВКК, выбираем интересующую нас генерацию класса (private, public). Имя метода, а также аргументы, буду совпадать с теми, что мы использовали в коде. Вроде бы даже типы будут :). Так можно создавать методы даже в другом классе.
д) Бывают ситуации, когда не прописан import у класса. Чтобы не подниматься в начала пакета, можно выбрать еще не прописанный класс, и нажать на нем ВКК, FD остальное сделает за нас.
2) Ctrl+B — сниппеты. Попробуйте все поймете. Редактор сниппетов находится на главной панели, значок в виде пазла с карандашом.
3) Refactor -> Rename… — безопасно переименовывает переменную во всем классе.
4) Find and Replace In Files [ Ctrl + I ] — собственно поиск и замена в файлах.
Я перечислил только те фишки, которыми постоянно пользуюсь, есть еще некоторые нюансы, о них можно узнать с офф сайта. По поводу авто-комплита, можно почитать эту страничку, тут все интуитивно понятно, и настолько хорошо, что когда пишешь не в FD постоянно спотыкаешься.
Плагины
Их довольно много. Я устанавливаю только highlighter, потому что только этой функции не хватает (подсветка всех одинаковых слов, по двойному клику).
Вроде бы все по кодингу.
2. Место хранения
Я выбрал DropBox. Потому что он чертовски прост. Установил одну программу, появилась папка, положил в папку файл, файл улетел на сервер, и теперь лежит там в надежности. Даже если сам удалишь, то в течении 30 дней можешь восстановить… Вообще dropbox очень мощный инструмент, обсуждение его применения можно найти на различных популярных ресурсах.3. Контроль процесса
Я могу написать о Teamer.ru, Планфикс и о thn.gs… но я ими не пользуюсь, хотя многожды пробовал. Как оказалось, лучше старого доброго блокнота на столе, может быть только… OneNote :). Люблю эту программу за один ее тег — галочка. Ставится он по нажатию на Ctrl+1, после чего его можно нажать мышкой :). Ну еще очень легко делать ветвящиеся задачи, можно легко их делать на уровень правее\левее (tab\backspace). Применяю для составления задач по игре, идей, перечисления ошибок и всего такого. Вот пример того, как выглядит подобный список для игры PatchWorms:
UPD: Как создать такой список?
Все довольно просто:
1) Создаем новую страницу, и вводим заголовок с именем нашего проекта.
2) Кликаем в любом месте листочка и вводим крупную задачу
3) Чтобы ввести подзадачу, переходим на следующую строчку (enter) и нажимаем tab, вводим имя. Чтобы вернуться на уровень назад жмем backspace. Получается что-то вроде этого:

4) Теперь нужно поставить галочки и прочие теги. Выделяем все наши задачи и нажимаем Ctrl+1. По желанию, у некоторых пунктов можно поменять тег. Например на самую верхнюю поставить тэг Звездочка (ctrl+2). Теги, можно ставить с помощью панели инструментов, там их полный список. Убираются теги той же комбинацией что и ставятся. Чаще всего я использую эти:

Собственно всё.
4. Мелочь, а приятно
Долго искал программу для снятия скриншотов, которая позволяла бы быстро фоткать и сразу выкладывать скриншот в интернет. И чем проще программа, тем лучше. На хабре была история про стартап pix.am который позволяет выкладывать не удаляемые картинки (автоматически аплоадит на все возможные бесплатные ресурсы по хранению изображений, а когда истекает время, продлевает, или меняет хостинг, ссылка одна и та же остается, короче сервис паразит :) ). Так вот, заметил я у них утилитку(эта для windwos, есть еще для linux и маков) которая делает скриншет выбранной области, и сразу же загружает его на сайт, кажется профит! После установки оказывается что никаких настроек у ней нет, сразу после запуска она меняет курсор на перекрестие с координатами, и по клику создает скриншот (ссылка копируется в буфер обмена, и открывается браузер с ссылкой). Выход я нашел очень быстро, не зря же занимал первое место в олимпиаде по владению Windows и MS Office. Нужно создать ярлык на рабочем столе, и в свойствах указать комбинация клавиш для его вызова( я поставил ctrl+shift+p).Предыдущие два топика были про графику, и, у некоторых может сложиться впечателение что я художник, или дизайнер, но это не так. По большой части моей деятельности, а также по образованию я — программист, хотя и имею довольно обширный опыт в различных сферах дизайна, и даже участвовал в олимпиадах по дизайну и занимал призовые места, но и только. Надеюсь, много людей почерпнут из данной статьи что нибудь полезное для себя. Также буду рад дополнениям и уточнениям, а также конструктивной критике.
- +24
- WeslomPo
Комментарии (69)
Но вот никак не понял — для графики не подойдет flash develop? В нем только код наструячить можно.
А как мне связать Flash CS5 и FlashDevelop, чтоб я мог из Flash CS5 компилировать в FlashDevelop для меня загадка. Подошел бы даже обратный процесс — главное быстрее =)
К примеру, сейчас завершаю делать Real Time Strategy типа Warcraf2 по движку — компилирование проекта занимает около 2х минут. Что напрягает.
Как бы сторонним компилятором бахать, чтоб не пережимать графику
Заканчиваешь заканчивать real time strategy и ничего не пишешь в блогах? Ну ты даешь) Я думаю все будет интересно узнать производительность игрушки (код), её способности (код, редактор) и вообще как ты такой проект поднял (сколько человек работало над проектом, как разделяли задачи). Жду от тебя подробной статьи!
Такая схема быстрее.
http://www.flashdevelop.org/wikidocs/index.php?title=AS3:FlexAndFlashCS3Workflow
Там в конце можна скачать пример проекта. Качаем, смотрим что да как.
Удачи!
Если очень кратко то примерно вот так вот (могу названия попутать — так как код пишу из головы). Каждый movie экспортится как класс. А в FlashDevelop коде грузишь swf через Loader — только нужно указывать полную ссылку на ресурс и разрешить этой флешке доступ к локальным файлам.
А потом у загруженной swf через MovieClip::LoaderInfo.applicationDomain.getDefinition(«SwfClassName») — можно вытащить из корневого мувика нужный тебе swf. Там можно подобным образом не только мувики дергать, но и звуки и графику. Получается очень удобно — все файлы игры лежат в виде отдельных файлов. И ты их можешь править сколько влезет не пересобирая весь проект. Можно даже перегружать в игре все ресурсы на лету — и сразу видеть изменения в графике или в настройках (полировка очень удобно получается).
Ну, а саму игру в отдельную swf можно собрать через Mill утилиту. Такими — например — хаксовцы пользуются. У меня все через hxswfml работает. При сборке финальной swf — ресурсы пакуются из директории в ресурсную swf. А потом — из этих двух собирается уже финальная swf.
По памяти — примерно так. Там всяких мелких засад довольно много (по памяти уже не помню всякие). Но — получается довольно удобно. По крайней мере — мне такой пайплайн автоматизирован и более удобен, чем флешевский «все через среду».
А вместо Ctrl+B можно использовать Tab. Начинаешь писать public, for или function — жмёшь табуляцию после первых букв. В настройках Code Snippets можно поправить шаблоны.
А перенастроить можно здесь:
Tools -> Settings -> ASCompletion -> Shortcuts -> Contextual Generator
Для блокнота, галочек и скриншотов юзаю Evernote. Советую попробовать.
Много пробовал разных тудушников, нотесов, заметок, майндмапов и пр., но самые лучшие — продукты от MS — notepad и OneNote. Считаю OneNote вообще шедевром, который затмил и Evernote и прочие штуки.
(Все, как и всегда, только личное скромное мнение, не претендующее на истину. Просто личный, но не интимный опыт.)
А профайлер я тоже не умею сразу запустить. Кстати его наличие тоже мне показал ты :-)
1) Тоже есть галочки и иерархия
2) Интеграция с гугл-календарем и гугл-почтой
3) Все хранится удаленно, соответственно можно использовать на других ПК и устройствах.
можно загнать на сервер, в буфер обмена (и вставить в флэш, например), сохранять на диск. Есть хоткеи, при вызове делает скрин экрана, и после его кропаешь — удобно при снятии скриншота во время проигрывания анимации.
А как же контроль версий? Не представляю как разработчику жить без этого.
FlashDevelop поддерживает tortoisehq (GIT\SVN).
Литературой не знаю даже, можете посмотреть svnbook.red-bean.com/, есть также документы по меркуриалу на русском, с описанием рабочего цикла.
Лично у меня необходимость вызывается еще тем, что движок развивается отдельно, и одинаковый для всех проектов, как редактор и прочее, и достаточно часто приходится заглядывать в прошлое смотреть изменения. Как и в прошлое других проектов, которые закончены полгода назад, чтобы просто взять оттуда несколько килобайт кода и сэкономить время.
Продал сайтлок на давно закрытую игрушку, откатил брендинг, навешал новый, и т.п.
далее, клонируем его в свои рабочие папки проектов, с которыми и работаем все основное время
перед тем как залить свои изменения в центральный реп (чем чаще — тем лучше), берем его текущую версию(обновляем свою ветку master), мержим в нее свою ветку develop и уже после этого заливаем содержимое своей ветки master в центральный пепозиторий
DropBox сразу информирует о появлении изменений, ну его фид тоже )
на словах — немного путанно, но на практике — одна минута делов :)
Софтины а-ля OneNote не использую, стараюсь все записывать на бумагу, удобней как мне кажется. Можно даже в метро ехать и пересмотреть все что надо, может что-то дополнить, если всплыли мысли.
А про ФД статья уже была, после которой я сразу пересел на него, как закончил проект.
кэп)
На нее можно повесить комбинацию клавиш (на ярлык) или закрепить на панели задач (тогда вызывать можно комбинацией клавиш Win+1, где 1 — позиция иконки на панели задач)
FAQ на FD читал, не помогло.
ОС: 7ка, FD: 3.3.4
Походу поторопился я садиться за 3.3.4 =/
История из жизни: Есть у меня лучший друг по прозвищу Ганс, он заядлый и закоренелый сисадмин и PHP кодер. И вот однажды он предложил мне чегонибудь навоять. Долго совещавшись мы остановились на флеш игре. Но он за неимением какоголибо опыта/знаний/пониманий AS b вообще флеша начал задавать кучу вопросов. Плюс ко всему этому мы выбрали вариант разработки без Flash IDE, тупо FD и SDK. Я ему до сих пор подсказываю что и где нажимать. Так что + и очень большой!
PS: Плохо нельзя плюсонуть дважды =)
PS2: Плохо нет версии FD под Linux =(
PS: Плюсануть можно и комментарий :).
PS2: Очень плохо. Пробовал работать под линуксом, бесит интерфейс почти всех программ. Он не незнакомый, он расхлябанный (консоль вещь хорошая, уважаю)