MTASC (MTASC)

Перейти к навигации Перейти к поиску
MTASC
Скриншот программы MTASC
Логотип MTASC
Тип Компилятор исходного кода
Разработчик Motion-Twin
Написана на OCaml[3]
Операционные системы Windows, Linux, macOS
Первый выпуск 25 октября 2004[1]
Последняя версия 1.15[2] (7 октября 2009)
Репозиторий github.com/ncannasse/mta…
Лицензия GPL
Сайт tech.motion-twin.com/mta…

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 для немедленного просмотра скомпилированного файла.