Cibler Redtamarin avec Flashdevelop
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

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

- 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
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 ;-)
La communauté "open source".. je voulais dire!