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

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.