Переход с Adobe CS3 на FlashDevelop

FlashDevelop принято хвалить. Считается, что это лучшая на сегодня среда для разработки flash-приложений. На самом же деле серьезных причин перехода всего полторы:
1. Бесплатность. Если лицензия на CS3 принадлежит не вам, а предприятию, на котором вы работаете, или же вовсе вам не принадлежит: бесплатность — весомый довод в пользу перехода.
2. Вроде бы (догнав проект на CS3 до 300+ классов я еще не сталкивался с этой проблемой) компилятор CS3 не любит больших проектов, сбоит, ссылаясь на недостаток памяти.
На этом все. Все остальные причины, которые обычно превозносят (автокомплит, автоимпорт, подстветка, переходы по классам), охватывает одно определение: личное удобство. Все перечисленное — это удобство набивания кода. Обычно же в любом проекте 90% времени занимает не долбление по клавишам, а отладка, поиск ошибок и мучительные размышления «ЧЯДНТ?».
Мое личное мнение: если вы не столкнулись с проблемой платности среды или недостатка памяти компилятора, и вас все устраивает в работе в CS3 — заморачиваться с переходом на FlashDevelop не стоит.
Если же вы столкнулись с двумя перечисленными причинами, или просто хотите улучшить удобство работы с кодом, практические заметки о переносе рабочего проекта с CS3 на FlashDevelop:

Установка:

  1. Установка FlashDevelop
    1. Скачать последнюю версию FlashDevelop, на данный момент 4.2.1.
    2. оставляем галочку FLEX SDK и Дебаг-плеер, убираем галочки с AIR.
  2. Копирование проекта AS3
    1. Создать новый проект AS3
    2. Удалить класс Main, созданный по умолчанию
    3. Скопировать к директорию src созданного проекта классы проекта из CS3
    4. Установить основной класс приложения:
      1. В ClassExplorer — правой кнопкой мышки на основном классе — Set Document Class

Возможные ошибки:

  1. При попытке компиляции выдается ошибка вида:

INITIALIZING: ?

Скопировать файл из
C:\Program Files\Java\jre6\bin\msvcr71.dll
в
C:\WINDOWS\system32\msvcr71.dll

(Файлы приведены для версии java 6. Если на компьютере установлена более поздняя версия — скопировать нужно библиотеку из нее — будет отличаться номер директории jre и цифры в названии файла библиотеки. В любом случае нужно брать файлы из последней установленной на компьютере версии)

  1. При компиляции вылезает ошибка вида:

Unable to load DLL ‘jvm.dll’

Скопировать файл из
C:\Program Files\Java\jre6\bin\msvcr71.dll
в
C:\Program Files\Java\jre6\bin\client\msvcr71.dll

(В зависимости от версии java — как в п.1)

  1. В окно Output не выводится trace:

Оказывается при компиляции в release-версии плеера FlashDevelop режет трейсы. Для вывода трейсов в окно output нужно использовать debug-сборку.
Скачать debug-версию flash-плеера. В принципе можно взять последнюю, но если учитывать, с какой неохотой пользователи обновляют flash-плеер на своих компьютерах, стоит взять версию пониже. Например 10.3. Почему не 9.0, которой пользовались в CS3? При работе debug-версии девятый плеер периодически съедает диспатч события COMPLETE. С версией 10.3 такого замечено не было.
Из скачанного архива скопировать debug-версию плеера (файл flashplayer10_3r183_43_win_sa_debug) в C:\Program Files\FlashDevelop\Tools\flexlibs\runtimes\player\-версия плеера-\win\.
В настройках FlashDevelop изменить:
Tools — Programm settings — Flash Viewer
External Player Path — указать путь к debug-версии плеера
В настройках проекта:
Project — Properties
Platform
установить Flash Player 10.3
Test Project
установить Play: External Player

Автокомплит

  1. Перенастроить автокомплит на завершение с пробела на Tab и Enter:
    1. В настройках FD:
      1. Tools — Program Settings — Flash Develop
        Completion List Insertion Triggers — указать: \n \t

Шаблон базового класса

В директории C:\Documents and Settings\имя пользователя\Local Settings\Application Data\FlashDevelop\Templates\ProjectFiles\AS3Project\
в текстовом редакторе исправить файлы:
Class.as.fdt
Class.as.fdt.wizard
В директории C:\Documents and Settings\имя пользователя\Local Settings\Application Data\FlashDevelop\Templates\
в текстовом редакторе исправить файлы:
AS3.fdt

Содержимое исправить на необходимый шаблон.

Шрифты

В проект в FlashDevelop шрифты внедряются метатегом [EMBED]. Но есть одна особенность. Метатег [EMBED] не позволяет встроить шрифт в виде BitmapText, поэтому проэмбедив использовавшиеся в проекте в SC3 шрифты, необходимо будет или потратить достаточно много усилий на подгонку формата шрифта по пикселям, либо мириться со смазыванием на определенных разрешениях монитора.
Один из вариантов решения данной проблемы — использование внешней *.SWF со шрифтами.
Открыть старый привычный CS3 и встроить шрифты стандартным образом. Скомпилировать *.SWF. Он не будет запускаться или выполняться каким-то образом, от него требуются только шрифты.
В проекте делаем класс загрузки и регистрации внешних шрифтов:

В функции OnFontsLoaded необходимо перечислить все шрифты, встроенные в swf через CS3, чтобы они зарегистрировались в системе путем добавления строчек вида:

Не забываем, что жирное и курсивное начертание встраивается отдельными шрифтами. FontNameXXX — имя, под которым данный шрифт был встроен в swf на CS3.
Статическая функция CorrectFontName нужна для проверки наличия загруженности и возврата правильного названия шрифта т.к. после встраивания в swf на CS3 шрифты именуются как: ИмяШрифта_РазмерШрифтаpt_st. Обращение к имени шрифта в проекте нужно выполнять через нее.
Скомпилированную swf со шрифтами скопировать в рабочую директорию.

Оформив класс загрузчика шрифтов, в основной функции проекта вызываем загрузку:

Функция Continue будет вызвана после загрузки swf со шрифтами для продолжения работы программы.

Теперь можно пользоваться встроенными (с BitmapText) шрифтами в проекте. Например в TextField необходимо использовать встроенный шрифт Arial размера 10: