Voici la classe avec la méthode statique main pour la compilation avec MTASC. Cette classe de base est utilisée dans tous mes projets AS2.
Elle intègre le debug avec LuminicTracer implémenté par le Framework AS2 Pixlib. Le debug s’active en fonction du paramètre debug transmis dans la balise embed.
Elle permet aussi d’attribuer des variables pour le mode local (hors ligne).
Il y a également la commande permettant de compiler la classe ainsi développée.
- -group : fusionne les classes dans un seul clip (permet de réduire le poids du swf).
- -main : force l’appel de la fonction statique «main» dans la classe.
- -swf : cible sur le fichier swf que l’on veut en entrée, ce qui permet d’ajouter du code dans un swf existant.
- -exclude : exclure la génération de code des classes contenu dans un fichier texte (un chemin par ligne).. Permet d’avoir un swf à part contenant uniquement les classes du Framework AS2 Pixlib, par exemple.
- -version : la version de flash ciblée pour la compilation.
- -infer : type automatiquement les variables locales, ce qui permet d’éviter des redondances(ex. var monOccurence:MaClasse = new MaClasse (); ).
- -header 950:550:40:FFFFFF -> paramètres du fichier swf créé, 950px x 550px, 40fps, couleur de fond FFFFFF.
/** * @note : * -header 950:550:40:FFFFFF -main -swf "I:\site.swf" -group -exclude "I:\BIBLIOTHEQUE\exclude_mtasc.xml" -version 8 -infer * */ // Classes bourre import com.bourre.core.HashCodeFactory; import com.bourre.utils.ClassUtils; import com.bourre.commands.Delegate; // Classes Debug import com.bourre.log.Logger; import com.bourre.log.LogLevel; import com.bourre.utils.LuminicTracer; class application.Main { private static var _oInst : Main; // L'instance unique du singleton public var isLocal : Boolean; // en local ? public var isDebug : Boolean; // Active le debug ? /*----- Movies Clip ------*/ private var _mcBase : MovieClip; /*--- objets utilisés ---*/ private var _oUI : UI; /*----- Constantes ------*/ private var _nDepth : Number; /*----- Variables URL HTML ------*/ private var _bNoCache : Boolean; // true pas de mise en cache des fichiers private var _sUrlXMLConfig : String; // url du fichier xml de configuration private function Main (container:MovieClip) { // save the general movie clip _mcBase = container; /* get the parameters send in the url */ this._sUrlXMLConfig = _mcBase._parent.XMLpath; this._bNoCache = _mcBase._parent.nocache; isDebug = = _mcBase._parent.debug; isLocal = = _mcBase._parent.local; // si on est en local on définit les variables qui nous sont nécessaires if(isLocal) { this._sUrlXMLConfig = "xml/config/config.xml"; } } /** * C'est le point d'entrée du programme, appelé sur la première image du fla, * elle est compatible MTASC * * @usage Main.main() * @method static main * @return Void */ public static function main (container:MovieClip) { // appel uniquement lors de l'ouverture de l'appli. Main.destruct(); // supprime l'instance de la classe si elle existe if(_oInst == undefined) { _oInst = new Main(container); _oInst._init(); } } /** * @return single instance of classe Main. * */ public static function getInstance ():Main { return _oInst; } /** * On prévoit une méthode pour détruire notre instance en cas de besoin * de réinitialisation ou de libération de la mémoire. * */ public static function destruct() : Void { // Si l'instance existe on la détruit. if (_oInst) { _oInst._oUI.destruct(); delete _oInst; // détruit l'instance Principale _oInst = undefined; } } private function _init() { _nDepth = 10; // init the debugger this.addDebug(); this.buildUI(); } /** * Effectuer tous les tests de sécurité. * * @see * @return */ private function buildUI() { _oUI = new UI(this._sUrlXMLConfig, this._bNoCache); _oUI.attach(_mcBase, _nDepth++ ); // construit l'interface générale } /*----------------------------------------------------------*/ /*------------- Le Debugger Flash --------------------------*/ /*----------------------------------------------------------*/ /** * Ajoute la gestion du debug dans l'application. * */ private function addDebug():Void { // Debugger LuminicTracer if(isDebug) { Logger.getInstance().addLogListener( LuminicTracer.getInstance() ); Logger.LOG("___ Logging API ready ___", LogLevel.INFO); } else Logger.getInstance().removeLogListener( LuminicTracer.getInstance() ); } /*----------------------------------------------------------*/ /*-------------- Other -------------------------------------*/ /*----------------------------------------------------------*/ /** * Returns the string representation of this instance. * @return the string representation of this instance */ public function toString() : String { return "'" + ClassUtils.getFullyQualifiedClassName( this ) + HashCodeFactory.getKey( this ) + "'"; } }// fin de la classe
Articles sur le même sujet :

bonjour à tous je cherche des utilisateurs de mtasc pour échange de tuyaux je commence donc un peu dur j’ai commencé à porter les classes FP8/FP9 je sais qu’il y a des gens qui l’ont déja fait aussi
Bonjour Jean Michel,
Je te conseille de t’inscrire sur la mailing list MTASC : http://lists.motion-twin.com/mailman/listinfo/mtasc
Tu trouveras une foule d’information.
Lorsque tu installes MTASC sur ton pc (Windows, MAC ou Linux), il y a déjà toutes les classes FP8 comatibles MTASC.
Plus d’informations sur MTASC : http://blog.geturl.net/post/2006/01/27/26-mtasc-la-compilation-libre
Je te conseille d’étudier le successeur de MTASC, une présentation de HAXE : http://www.delfiweb.com/langage-haxe/article12903.html
merci matthieu j’ai déja mtasc et je suis depuis longtemps sur la mailing list
je connais haxe aussi j’ai deja travaillé avec mais je suis pas partisan de cette divergence au niveau du language actionscript