Calendrier

Février 2012
Lu Ma Me Je Ve Sa Di
<< >>
12345
6789101112
13141516171819
20212223242526
272829

Cibler Redtamarin avec Flashdevelop

Dernière mise à jour Dec 19 2010

Présentation

L'autre Jour je suis tombé sur un projet sympa :

  • redtamarin est un projet basé sur tamarin, le coeur de Flash Player.
  • Il permet d'écrire en as3 des outils en ligne de commande cross-plateform.
  • L'api (v0.25) est pour l'instant sommaire, mais il promet d'être agrémenté de toutes les fonctionnalités essentielles dans peu de temps avec la version 0.3

Configuration avec Flashdevelop

Le Wiki n'indique pas comment utiliser Redtamarin avec cet IDE alors j'ai fait une extension ajoutant un projet type correctement configuré.

  • En mode release, (combobox dans la barre d'outils de Flashdevelop) le projet type publie un exe (Windows uniquement) au nom du projet et lance le test en ligne de commande.
  • En mode debug l'exe n'est pas publié et le lancement du test est donc plus rapide.

Donc pour être près à coder un outils perso télécharger et installer ce fichier redtamarin0.25.fdz pour Flashdevelop

Projet exemple


Créer un nouveau projet :

Si l'installation s'est correctement passé (testé sou windows 7 avec install standard de Flashdevelop). Il doit maintenant être possible de créer un nouveau projet ciblant Redtamarin 0.25

new-project.jpg

Une fois le projet créé, il est près à être compiler et testé "traditionellement" via la commande CTRL+ENTER. Cependant on ne voit pas grand chose car le programme ne fait rien pour le moment.

coder :

Ouvrir le fichier Main.as dans le répertoire des source "src" :

  • L'include sur la ligne 1 est utile lorsqu'on utilise différentes classes :
    Pour le moment le compilateur ne vas pas aller chercher les imports touts seul
    Il faut référencer manuellement les fichier de classe via la directive "include" avant de pouvoir les référencé par "import".
    j'ai choisit d'écrire ces références dans le fichier "Includes.as" qui n'est pas utilisé dans cet exemple.
    Les classe du projet redTamarin sont cependant déjà référencées à l'appel du compilateur.
  • Pour tester un premier programme, y coler par exemple le code suivant en ligne 2 (commentaires du fonctionnement dans la source) :
    import avmplus.System;
    import avmplus.File;
    import flash.utils.ByteArray;
    
    //Recupération des arguments dans un tableau
    var args:Vector.<String> = Vector.<String>(System.argv);
    
    //Comportement si pas (pas assez) d'argument fournis
    // illustre l'entrée sortie standard
    if (args.length < 1) 
    {
        trace("Fichier compresser ?");
        args[0] = System.readLine();
    }
    if (args.length < 2) 
    {
        trace("Nom du Fichier de sortie ?");
        args[1] = System.readLine();
    }
    
    try
    {
        /*
         * >Lecteur d'un fichier en argument 1, 
         * >compression "à la flash"
         * >Ecriture du fichier compressé sur le disqaue à l'adresse fournie en argument 2
         */
        var src:String = args[0];
        var dest:String = args[1];
        var b:ByteArray = File.fileToByteArray(src, false);
        b.compress();
        File.writeByteArray(dest, b);
    }
    catch(e:Error)
    {
        //Gestion des erreurs du processus
        trace(e);
        trace("appuyez sur une touche pour terminer");
        System.readLine();
    }

Compiler et tester :

  • Compiler via CTRL +ENTER. Le teste doit se lancer et demander un fichier en entrée à zipper.
    Pour simplifier les tests on peu fournir directement les arguments à la commande de test :
  • Aller dans le menu Project > properties
  • Dans l'onglet courant (output) fieldset "Test Movie" cliquer sur éditer et ajouter la chaine suivant :
    -- bin/in.txt bin/out.txt
    project-out-cmd.jpg
  • Penser à ajouter un fichier nommé "in.txt" dans le répertoire bin du projet avant de compiler.

Lors des tests ce programme ne posera cette fois pas de question et créera un fichier compressé 'out.txt'

Notes en conclusion

  • Flashdevelop est un chouette outils qui permet d'intégrer différent styles de développement.
  • Pour créer mon extension je me suis inspiré de celle d' azoth qui est u super outil pour utiliser les opcode d'alchemy dans un contexte de développement simple (via un e api de manipulation de la mémoire propre et une post compilaton intégrés dans cette extension)
  • L'extension "fdz" que j'ai créé ne permet que l'export pour Windows, mais Redtamarin permet de cibler d'autres plateformes (linux, OSX...) et les script qui le permettent sont fournis avec le projet à télécharger (c'est celui que j'ai mis dans l'extension)
  • Dans le prochain billet montrerais (entre autre) une utilisation possible du programme example

2 Commentaires

  • Mar 23, 2011 at 02:47

    C'est super!! je suis ravi de voir que la communauté AS3 fait bien évoluer l'AVM+ Merci à Zwetan pour son projet et à toi pour tes explorations ;-)

  • Mar 23, 2011 at 02:48

    La communauté "open source".. je voulais dire!

Nom : E-mail : Site web : Message :