Dernièrement, j'ai voulu intégrer Mochiads dans un projet Flash développé avec haXe. Mais après mettre rendu sur le site, je me suis aperçu, qu'aucune version haxe n'existait. J'ai donc demandé à notre cher ami Google ce qu'il en pensait. Après mainte recherche, je suis tombé sur le site de Viktor Hesselboom qui explique comment rendre accessible les librairies de Mochiads.

Voici comment les intégrer et les utiliser.

Pré-requis :


Intégrer les classes Mochiads à notre projet

Décompressez l'archive contenant les librairies de Mochiads, puis lancez la commande suivante :

compc -source-path . -output mochi.swc -include-classes mochi.as3.MochiAd mochi.as3.MochiDigits mochi.as3.MochiScores mochi.as3.MochiServices
(compc se trouvant dans le dosser bin du sdk de Flex si vous n'avez pas défini de variable globale)

Vous avez maintenant un fichier swc.

Un fichier swc est une archive contenant un fichier swf correspondant aux librairies, ainsi que d'autres ressources ne nous intéressant pas.

Récupérez le fichier library.swf (sous Windows, renommez le fichier en .zip).
Nous allons maintenant générer les entêtes des classes avec la commande :

haxe --gen-hx-classes library.swf

Un nouveau dossier vient d'être créé, hxclasses. Copiez son contenu dans le dossier de votre projet (ou ajouté -cp /mon/dossier/ dans le fichier de compilation .hxml).

Pour pouvoir utiliser les classes, il nous faut encore les récupérer via SWFmill. Pour ce faire, nous allons ajouter à notre librairie, la librairie correspondant aux classes de Mochiads:

< ?xml version="1.0" encoding="iso-8859-1"?>
< movie width="500" height="500" framerate="30" version="9">
    < clip id="mochi" import="library.swf" />
    < frame>
        ...
    < /frame>
< /movie>

Après avoir compilé votre librairie avec SWFmill (swfmill simple lib.xml lib.swf), ajoutez bien évidemment dans votre fichier de compilation :

-swf-lib lib.swf 

Utiliser les classes

import flash.display.MovieClip;
import mochi.as3.MochiAd;
class Main {
    private var mv_root : MovieClip;
    private var mv_mochiads : MovieClip;

    public static function main():Void {
        var m : Main = new Main(flash.Lib.current);
    }

    public function new(parent:MovieClip):Void {
        mv_root = parent;
        // création du MovieClip qui va accueillir Mochiads
        mv_mochiads = new MovieClip();
        mv_root.addChild(mv_mochiads);
        MochiAd.showPreGameAd({clip:mv_mochiads, id:"xxxxxxxxxxxxxxxx", res:"500x500", ad_finished:initGame});
    }

    private function initGame():Void {
        ... // le code du jeu
    }
La méthode showPreGameAd() récupère en paramètre, le nom du MovieClip sur lequel il doit être appliqué, votre identifiant Mochiads, la taille de votre jeu, et la méthode qui sera appelée à la fin du chargement.
Plus d'information sur l'utilisation de Mochiads : documentation.

Un exemple d'intégration de Mochiads : RFighter.