Pull to refresh

Собираем Actionscript/Flex приложение в Linux

Reading time3 min
Views4.2K
Зададимся задачей собрать HelloWorld.as с помощью Flex SDK, не используя мышь. Зачем? Хотя бы для того, чтобы в голову юзера, листающего поисковую выдачу хабры по запросу «Flex», не закралась мысль о том, что эта технология равна необходимости установить Eclipse.
По катом решение этой задачи, а также обход некоторых возможных подводных камней.

Flex-ов много, что выбрать?


На момент написания этой статьи страница загрузки Flex SDK содержит сразу несколько версий этого продукта. Более того, самая свежая версия (которая нам больше всего интересна) разделяется на два выпуска — «Free Flex SDK» и «Open Source Flex SDK». Первый из них — это наиболее полный вариант, содержащий всё необходимое для сборки любых Flex-приложений. Второй вариант для тех, кто не желает иметь на своей машине никаких (пусть и бесплатных) компонентов с закрытым исходным кодом. Собственно, Open source Flex SDK — это Free Flex SDK минус закрытые компоненты, среди которых Flash player, AIR, технологии для продвинутого кодирования шрифтов и код, позволяющий пользоваться в коммерческих целях такими вещами, как компоненты визуализации данных (Data Visualization components).
Стоит скачать Free Flex SDK, а на досуге разобраться с правовыми вопросами. Они освещаются здесь (en).

Куда девать все это добро?


В вашей директории для различных экспериментов с кодом и технологиями создайте директорию flex. В ней создайте еще одну директорию с номером версии Flex SDK. Распакуйте в нее содержимое архива с SDK. В моем случае это выглядело так:
mkdir -p ~/dev/flash/flex
cd ~/dev/flash/flex
wget -c fpdownload.adobe.com/pub/flex/sdk/builds/flex4/flex_sdk_4.1.0.16076.zip
unzip -d 4.1 flex_sdk_4.1.0.16076.zip
Для простоты будущего переключения между версиями SDK в этой же директории создайте символьную ссылку на текущую версию.
ln -s 4.1 current
Добавьте к глобальной переменной PATH путь к директории bin во Flex SDK
echo «PATH=\${PATH}:~/flash/flex/current/bin» >> ~/.bashrc
Перезагрузите консоль (exit+login или закройте и снова откройте эмулятор терминала)

А Hello world как собрать?


Если, с поправками на правила вашего дистрибутива, все прошло нормально, то в командной строке стал доступен компилятор исходных кодов Flex — mxmlc. Можно его запустить и он выдаст что-то вроде:
Adobe Flex Compiler (mxmlc)
Version 4.1.0 build 16076
Copyright (c) 2004-2009 Adobe Systems, Inc. All rights reserved.

Ошибка: Необходимо указать целевой файл


Осталось написать нужный код и собрать его:
Код помещаем в файл HelloWorld.as

//Код стартовой точки приложения должен быть в неименованом пакете
package {
    //импортируем пакет содержащий класс MovieClip, от которого должен наследываться главный класс приложения
    import flash.display.*;
    //главный класс приложения должен находится в файле, имя которого без расширения совпадает с именем класса
    public class HelloWorld extends MovieClip{
        function HelloWorld(){
            //вывод отладочного сообщения
            trace("Hello World!");
        }
    }
}

Собираем:
mxmlc -optimize=false -omit-trace-statements=false HelloWorld.as

Почему все именно так можно почитать, например, в замечательной книге Колина Мука

И где можно увидеть отладочное сообщение?


Увы, с этим не все так просто. Во-первых отладочные сообщения может выводить только отладочная версия flash-плеера.
Её можно найти в директории runtimes/player/10.1/lnx/flashplayerdebugger.tar.gz
Кроме того, сообщения будут выводиться только в файл ~/.macromedia/Flash_Player/Logs/flashlog.txt и только в том случае если в вашей домашней директории имеется файл mm.cfg со следующим содержанием:
ErrorReportingEnable=1
TraceOutputFileEnable=1


И что же из этого следует?


А следует ровно то, что у нас имеется основа для экспериментов с языком программирования ActionScript и если это вас заинтересовало, то дайте знать и мы попробуем сделать что-нибудь посложнее, например разрушить стену из кубиков с помощью физического движка Box2D или собрать кроссплатформенное AIR-приложение с окном произвольной формы.

P.S. В процессе написания статьи я ухитрился случайно опубликовать ее в зачаточном состоянии. Приношу свои извинения.
Tags:
Hubs:
If this publication inspired you and you want to support the author, do not hesitate to click on the button
+4
Comments3

Articles