[AS3] Compiler des fichiers .as sans flash
Compiler un fichier as mais sans flash est maintenant possible.
Prennons par exemple un fichier que nous enregistrerons sous le nom « ExempleApplication.as » et dont le contenu sera :
package { import flash.display.Sprite; import flash.text.TextField; public class ExempleApplication extends Sprite { public function ExempleApplication() { var champ:TextField = new TextField(); champ.text = "Hello world !"; addChild(champ); } } }
Ce fichier doit, une fois transformé en .swf afficher un texte « Hello world ! ».
Pour cela, j’ai téléchargé le SDK de flex sur le site d’adobe (c’est gratuit, il suffit de s’inscrire pour le télécharger), comme ça on peut déjà compiler les fichier mxml de flex, mais ce n’est pas suffisant pour compiler directement les fichiers .as.
Du coup, j’ai téléchargé la version alpha de flash 9 surhttp://labs.adobe.com.
Cette version ne s’installe que sur une version XP (il faut le savoir – merci Hackim ! ).
Bref, une fois installé, il faut aller dans le répertoire d’installation de flash 9, dans » Program Files », et récupérer le dossier « Action script 3 ».
3 fichiers sont importants :
– asc_authoring.jar
– global.abc
– playerglobal.abc
j’ai copié ces 3 fichiers dans le répertoire lib du sdk de flex (exemple : /home/{nom de l’utilisateur}/flex_sdk_2/lib).
Pour la suite de l’article, nous posons que mon utilisateur se nomme « martin », que sa home est à l’adresse suivante « /home/martin » et que le SDK de flex se trouve à l’adresse « /home/martin/flex_sdk_2 » et donc que les fichiers copiés précédemment se trouve dans « /home/martin/flex_sdk_2/lib ».
Notre fichier « »ExempleApplication.as » est dans « /home/martin ».
Pour le compiler, on se positionne dans la home par exemple :
cd /home/martin
et lance la commande suivante :
java -jar /home/martin/flex_sdk_2/lib/asc_authoring.jar -import /home/martin/flex_sdk_2/lib/global.abc -import /home/martin/flex_sdk_2/lib/playerglobal.abc -swf ExempleApplication,550,400 ExempleApplication.as
Un fichier .abc et .swf sont créés sans problème, tout fonctionne donc bien.
Cependant, devoir taper les adresses complètes pour les fichiers .jar et .abc, à chaque fois, est désagréable.
Du coup, j’ai créer un fichier « as.sh » avec le contenu suivant :
#!/bin/shell java -jar /home/martin/flex_sdk_2/lib/asc_authoring.jar -import /home/martin/flex_sdk_2/lib/global.abc -import /home/martin/flex_sdk_2/lib/playerglobal.abc $*
Le fonctionnement de ce fichier est simple, il suffit de l’appeler et de passer en argument ce qui permet de compiler le .as en .swf, c’est-à-dire les paramètres attendu par le compilateur asc d’adobe (pour plus d’information, passer en argument -h
).
Exemple :
sh home/martin/flex_sdk_2/as.sh -swf ExempleApplication,550,400 ExempleApplication.as
C’est sympa, mais c’est pas encore ça. On est encore obligé de taper l’adresse du script shell.
Pour résoudre ce problème, éditons le « .bashrc » qui se trouve dans « /home/martin » :
cd /home/martin vi .bashrc
On se positionne après le dernier alias et on rajoute cette ligne :
alias as='sh /home/martin/flex_sdk_2/as.sh'
On peut faire la même chose pour le compilateur de fichier .mxml de flex (sans « sh » bien sur):
alias mxmlc='/home/martin/flex_sdk_2/bin/mxmlc'
On relance maintenant le .bashrc :
. .bashrc
Et maintenant on peut compiler tranquillement des .as (ou des .mxml) en .swf :
as -swf ExempleApplication,550,400 ExempleApplication.as
L’important c’est de donner la bonne adresse du .as si on est pas de le même répertoire que lui, le reste ce sont les paramètrages classiques du compilateur.