MTASC (Motion-Twin ActionScript 2 Compiler) — компилятор ActionScript 2.0, написанный на языке программирования Objective Caml (OCaml). Является свободно распространяемым программным обеспечением с открытым исходным кодом. Может компилировать один или несколько файлов ActionScript непосредственно в SWF-байткод без использования среды разработки Flash или других приложений.

MTASC представляет собой консольное приложение, вследствие этого появились отдельные проекты для облегчения работы с ним: интеграция с Flash IDE (FLASC), добавление интерфейса пользователя (mtascGUI) и т.п.

Отличия от компилятора Macromedia (MMC) Время компиляции. MTASC значительно быстрее MMC. Область действия локальных переменных. В MTASC она ограничена блоком кода, в MMC — функцией. Директива #include не поддерживается MTASC как соответствующая устаревшей практике программирования. Локальные (вложенные) функции. MTASC поддерживает только анонимные локальные функции, в то время как MMC допускает вложения именованных функций. Динамический доступ к данным и объектам. В MTASC не поддерживаются выражения типа eval("this") и eval("arguments"), свойство root клипа недоступно вне соответствующего контекста.

Дополнительные возможности и усовершенствования Пользовательские функции трассировки. Типизированные массивы. Определение типов переменных во время компиляции.

Использование MTASC может использоваться как для инъекции кода в существующий SWF-файл (созданный при помощи Flash IDE), так и для компиляции нового из исходных файлов.

Запуск MTASC из командной строки mtasc [параметры] файлы

Параметры командной строки MTASC может быть запущен из командной строки со следующими параметрами:

Параметр Описание -swf Имя компилируемого SWF-файла. -cp Каталог с исходными файлами для компиляции; может быть указан несколько раз. -main Автоматический вызов статической функции main после регистрации классов. -header Данные заголовка компилируемого файла в формате ширина:высота:fps:цвет. Если параметр указан, будет скомпилирован новый SWF-файл. -mx Использовать классы компонентов MX V2. -version Версия SWF. -v Вывод подробной информации в процессе компилирования. -out Новое имя компилирумого файла. -msvc Использовать стиль Microsoft Visual Studio для вывода сообщений об ошибках компиляции. -strict Использовать строгий режим компиляции (должен быть указан тип переменных при объявлении). -exclude Текстовый файл, в котором перечислены не компилируемые исходные файлы (по одному в строке). -trace Имя пользовательской функции трассировки сообщений (замена стандартной функции trace()) или no для отключения трассировки. -keep Сохранять классы, уже скомпилированные в SWF. -frame Экспортировать классы AS2 ы указанный кадр. -pack Компилировать все файлы в указанном пакете. -group Объединяет классы в один клип (может привести к проблемам при совместном использовании с -keep или -mx). -wimp Предупреждать о неиспользуемых импортах классов. -infer Использовать определение типов для локальных переменных. -help Вывод информации о версии компилятора и списка параметров.

Пример компиляции из командной строки Для примера возьмём простой класс ActionScript:

// Test.as class Test { static var app:Test; private var square:MovieClip;

static function main() { app = new Test();

function Test() { square = _root.createEmptyMovieClip("square", _root.getNextHighestDepth()); square._x = 150; square._y = 150;

square.beginFill(0xFF9900); square.moveTo( 50, 50); square.lineTo( 50, -50); square.lineTo(-50, -50); square.lineTo(-50, 50); square.lineTo( 50, 50); square.endFill();

square.onEnterFrame = function() { this._rotation += 1;

Запустите MTASC со следующими параметрами:

mtasc -v -main -swf test.swf -header 300:300:24:332525 Test.as

В результате будет скомпилирован файл test.swf с размерами сцены 300 на 300 пикселей, частотой кадров 24 и тёмно-коричневым цветом фона (#332525).

Примечания

Ссылки Официальная страница mtascGUI: Интерфейс пользователя для MTASC. Поддерживает FlashPlayer версий 6, 7, и 8 для немедленного просмотра скомпилированного файла.

Категория:Программное обеспечение с лицензией GNU GPL Категория:Компиляторы Категория:Adobe Flash