balor@chrome.pl

Haxe - quick start na Linuxie

Po dłuższej przerwie spowodowanej zaliczeniami, sesją itp. (każdy dobrze wie wtf.) postanowiłem odkurzyć nieco swojego zaniedbanego bloga. Stąd, obiecany kiedyś przeze mnie, poradnik pokazujący w jaki sposób zacząć swoją przygodę z haXe w środowisku jakim jest Linux. A więc zaczynamy...

Ściągamy paczkę z plikiem instalacyjnym haXe z oficjalnej strony, rozpakowujemy go i uruchamiamy z uprawnieniami roota:

% mkdir haxe_inst
% cd haxe_inst
% wget http://haxe.org/file/hxinst-linux.tgz
% tar -zxvf hxinst-linux.tgz
% sudo ./hxinst-linux


Po pomyślnie zakończonej instalacji powinniśmy zobaczyć poniższy napis:

Installation Completed

Świetnie, zainstalowaliśmy haXe! Jeśli chcemy możemy już usunąć plik instalatora, pobraną paczkę i pliki ściągnięte przez instalatora.
Kolejnym krokiem będzie stworzenie swojego pierwszego projektu. Zacznijmy od stworzenia dla niego folderu, w którym stworzymy 2 pliki, tj. Hello.hx i compile.hxml:

% mkdir ~/hello
% cd ~/hello
% touch Hello.hx
% touch compile.hxml


Teraz szybkie wyjaśnienie. Plik Hello.hx będzie zawierał kod naszej aplikacji w Haxe. Natomiast plik compile.hxml zawiera parametry kompilacji naszego programu.
Zacznijmy tworzyć! Otwórzmy swoim ulubionym edytorem plik Hello.hx i przepiszmy (niekoniecznie z komentarzami) poniższy kod:

class Hello // Deklaracja klasy Hello (Nazwa klasy taka sama jak pliku)
{
    // Deklaracja metody statycznej main()
    // Metoda ta jest wywoływana przy rozpoczęciu działania programu
    static function main()
    {
        // Tworzymy obiekt pola tekstowego we flashu
        // Zauwazmy zgodnosc z api Flasha
        var wesolePole = new flash.text.TextField();
        wesolePole.text = "Witaj Świecie!";
        wesolePole.textColor = 0xDC470D;
        // Dodanie naszego pola tekstowego do sceny
        flash.Lib.current.addChild(wesolePole);
    }
}

Jak widzimy, kod haXe jest bardzo podobny do ActionScripta3. Oczywiście różnice istnieją, jako że haXe jest językiem na trochę wyższym poziomie. Również programujący w Javie powinni bardzo szybko się z nim oswoić. Jak już zaznaczyłem w kodzie, biblioteki Flasha w haXe są przeniesione z stuprocentową zgodnością z oryginalnym API Flasha.
Kolejną rzeczą, jaką musimy się zająć, jest plik compile.hxml. Wpiszmy do niego poniższy kod:

-main Hello
-swf-version 9
-swf-header 400:200:30
-swf hello.swf

Jak łatwo się domyśleć, pierwsza linijka wskazuje na moduł poddany kompilacji, czyli plik Hello.hx. Następne 3 linijki opisują kolejno: wersję Flash Playera, dla której będzie kompilowany plik swf (w naszym przypadku FlashPlayer9), parametry aplikacji Flasha (u nas to rozmiar 400px na 200px i 30 kl./sek.). Na końcu znajduje się nazwa pliku docelowego, do którego zostanie umieszczony wygenerowany Flash-owy bytecode dla FlashPlayera.

Jesteśmy gotowi do kompilacji! Wpisujemy w konsoli:

% haxe compile.hxml

Jeżeli nie zobaczyliśmy żadnego komunikatu świadczącego o błędzie w kodzie, to kompilacja zakończyła się sukcesem. W folderze zawierającym naszą pierwszą aplikację powinien pojawić się nowy plik o nazwie hello.swf. Otwieramy go przeglądarką bądź samym Flash Playerem i podziwiamy nasze dzieło:

HaxeHelloWorld

To by było na tyle. Jak widać stworzenie czegoś w haXe jest bardzo proste i zachęcające do eksperymentowania. Polecam otworzyć sobie oficjalną dokumentację Flasha i pobawić się z naszą pierwszą aplikacją - bądźcie kreatywni! :)

W kolejnych wpisach postaram się szerzej opisać cechy języka haXe oraz naskrobać coś o kompilacji do PHP. Powyższy poradnik został napisany z myślą o kompletnie nie znających haXe. Komentarze w stylu "tutorial napisany jak dla debili" proszę zachować dla siebie.

Komentarze do notki Haxe - quick start na Linuxie

  1. chester powiedział(a):

    czekam na więcej. O haxe czytałem w czasie jego raczkowania, ale wtedy to jeszcze nic nie potrafiło robić poza samym "Hello World".

  2. krzyszsz powiedział(a):

    A czy po tym jak Adobe wydało swoje Flex SDK za free jest jeszcze sens zajmowania się hexe? (przyznam że o hexe nic nie wiem, a tym sdk zajmuję sie od niedawna)

  3. balor powiedział(a):

    @krzyszcz: Oczywiście że jest sens. HaXe pomimo podobieństwa do AS3 jest językiem pozwalającym na więcej. Dodatkowo Flash to tylko jedna z wielu możliwych platform, do której może się kompilować (jest jeszcze php, c++, neko, js...). A jeśli rozumujemy w spektrum kompilowania do Flasha, swf-y skompilowane za pomocą haXe są szybsze od tych wykonanych standardowymi kompilatorami (udowodnione!). Pełną listę możliwości możesz zobaczyć tutaj.

Dodaj komentarz: