Accueil » Tutoriaux » Haxe » Mes premiers pas avec Haxe
Mes premiers pas avec Haxe

 

Tout d'abord, qu'est ce que Haxe ?

Si on en crois Wikipédia, Haxe est un langage de programmation développé par Nicolas Cannasse et la société Motion-Twin qui permet l'utilisation :

  • du côté du serveur : un langage Web comme le PHP, Perl, Ruby ou Python.
  • du côté du client : Flash (ActionScript 1, 2 et 3) et Javascript, DHTML et AJAX.

Le langage de programmation haXe unit ces différentes plate-formes au sein d’un seul langage. Il apporte des outils qui facilite le traitement d’un monde dynamique tel que le DHTML ou les bases de données, tout en contenant un compilateur qui détectera des erreurs tôt dans la phase de développement.

Mais haXe permet aussi :

  • Créer des fichiers Flash SWF qui utilisent les APIs pour les lecteurs (Flash Player) 6, 7, 8 et 9 ;
  • Générer du code Javascript utilisant les API DHTML des navigateurs, ainsi que des applications AJAX ;
  • Générer du Bytecode qui peut être employé côté serveur (grâce à un plug-in Apache) ou empaqueté dans un exécutable autonome.

haXe permet donc d'assurer l'interopérabilité entre ces différents langages en fournissant des bibliothèques communes.

Voilà pour ce qui est de la définition.

Grâce à Haxe, le développement d'un site Web est simplifié. En effet, il n'y a aucun framework contraignant ou énorme lon à prendre en mains, mais seulement des outils.

Pour information, haXe peut tourner sur Apache en utilisant mod_neko. Les performances de la Virtual Machine sont environ 30 fois plus rapide que celles de PHP, et emploient beaucoup moins de mémoire que JVM (la machine virtuelle dédiée à Java). mod_neko est disponible pour Windows, Linux, OSX et les systèmes BSD.

Pour mieux faire passer le morceau, nous allons voir un exemple d'une création de page et décortiquer le tout.

Bien évidemment, avant d'aller plus loin, vous devez bien connaitre la programmation orientée objet. Nous ne reviendrons pas dessus. Si vous avez besoin d'une remise à niveau, c'est par ici.

La syntaxe

La syntaxe est proche de celle de Java/ActionScript/C++. Les types sont les mêmes, c'est-à-dire : Void, Float, Int, Bool et Dynamic. Les classes peuvent être déclarées en static, public ou private mais pas en protected.  Toute les variables locales sont devancé de 'var'. Exemple :

var z : String ;

On a ici une variable locale z de type chaîne de caractères.

L'accès aux méthodes et attributs de classe se fait comme en C, avec un point. Exemple : 

o.field

Pour le reste, nous verrons en detail si nous en avons besoins, sinon je vous renvois vers le wiki officiel.

A noter :
Le nom de la classe doit commencer par une majuscule.
Il est mieux de mettre le même nom pour la classe et le fichier la contenant.
Lors de la compilation, il faut mettre le nom de la classe après : -main
Le nom du fichier .n doit être en minuscule.


Haxe et Flash : Hello World !!

Tout d'abord, créez un fichier Test.hx et placez-y le code suivant : 

 

class Test {
    static function main() {
        trace("Hello World !");
    }

Maintenant, dans un fichier compile.hxml :

-swf test.swf
-main Test

Ce qui va permettre de compiler le code en un fichier swf. Pour ce faire, lancez la commande :

haxe compile.hxml

sous linux, ou double cliquez sous windows.

Vous avez alors dans le dossier, un fichier .swf. Placez le dans un fichier html et lancez votre navigateur préféré :

<html>
    <head><title>haXe Flash</title></head>
    <body bgcolor="#dddddd">
        <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
            width="400"
            height="300"
            id="haxe"
            align="middle">
        <param name="movie" value="test.swf"/>
        <param name="allowScriptAccess" value="always" />
        <param name="quality" value="high" />
        <param name="scale" value="noscale" />
        <param name="salign" value="lt" />
        <param name="bgcolor" value="#ffffff"/>
        <embed src="test.swf"
            bgcolor="#ffffff"
            width="400"
            height="300"
            name="haxe"
            quality="high"
            align="middle"
            allowScriptAccess="always"
            type="application/x-shockwave-flash"  
            pluginspage="http://www.macromedia.com/go/getflashplayer"
        />
        </object>
    </body>
</html>
Et voilà ce que vous devez obtenir : 
Haxe et Javascript

Pour utiliser javascript, c'est presque la même chose qu'utiliser du flash. Pour afficher hello world !!, il vous suffit de copier le code suivant dans le fichier Test.hx :

class Test {
    static function main() {
        trace("Hello World !");
    }

}  


Et dans me fichier compile.hxml : 

-js test.js
-main Test
Pour l'integrer dans un fichier html, faite comme vous en avez certainement l'habitude :
<html>
     <head><title>haXe JS</title></head>
     <body>
        <div id="haxe:trace"></div>
        <script type="text/javascript" src="test.js"></script>
     </body>
</html>

Ce qui aura pour effet d'afficher hello world dans le div "haxe:trace". Il est également possible d'utiliser une boite d'alerte grâce à :

js.Lib.alert();

Ok ! Mais comment fait-on pour créer une application web rapidement ?

Haxe et neko

Pour ça, il y a le serveur web intégré au doux nom de neko.

Tout d'abord, lancez le fichier haxeserver.bat si vous êtes sous windows ou tapez nekotools server sous linux pour lancer le WebServer. Vous pouvez le configurer en vous rendant sur le panneau de configuration.

Maintenant que vous avez votre serveur configuré, commençons par un Hello World !

Dans un fichier Index.hx, tapez :

class Index {
    static function main() {
        trace("Hello World !");
    }
}

Nous devons maintenant le compiler et créer du bytecode. Pour ce faire, nous allons créer un fichier index.hxml et mettre le code :

-neko index.n
-main Index

Fermez et sauvez. Executer ce fichier pour obtenir un joli fichier index.n.
Placez ce fichier sur votre serveur neko (dans le dossier spécifié dans votre panneau de configuration).
Rendez vous maintenant dans votre navigateur à l'adresse : http://localhost:2000/.
Vous allez avoir à l'écran un Hello World ainsi que le nom du fichier et le numéro de la ligne où se trouve la fonction trace().



Pour aller plus loin

Voilà pour ce qui est des présentations avec cet outil assez pratique.
Nous verrons dans un prochain tuto comment allez plus loin et développer des modules.

Source
Ce tuto est tiré du site officiel de haxe.