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).
Примечания
[править | править код]- ↑ https://sourceforge.net/p/mtasc/code/HEAD/tree/trunk/original/ocaml/mtasc/doc/CHANGES.txt
- ↑ MTASC Changes . Дата обращения: 17 мая 2022. Архивировано 17 мая 2022 года.
- ↑ The mtasc Open Source Project on Open Hub: Languages Page — 2006.
Ссылки
[править | править код]- Официальная страница
- mtascGUI: Интерфейс пользователя для MTASC. Поддерживает FlashPlayer версий 6, 7, и 8 для немедленного просмотра скомпилированного файла.