Derniers Commentaires

  • HB: en fait il faut surtout se demander pourquoi on veut proteger une appli, de qui, quelles parties, etc… si...
  • mika: En effet hb, ton message m’a fait réfléchir. Et ce matin sous la douche naquit une idée. Pourquoi ne pas...
  • hb: Hello, pas sur que ce type de blocage soit vraiment une bonne solution… ca s’appelle se faire justice...
  • mika: Merci pour le code ! c’est un bon début de protection. Je me demandais si il était possible...
  • TiBaker-974: Heu… lol ta parfaitement raison Julien c’est pour ça je suis déçus mais bon on pourra...

Classe Main compatible MTASC

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
Partagez cet article :
  • Digg
  • del.icio.us
  • Facebook
  • Technorati
  • MySpace
  • LinkedIn
  • Wikio FR
  • Yahoo! Buzz
  • Netvibes
  • Google Bookmarks
  • PDF
  • email
  • Print

Articles sur le même sujet :

  1. Créer une bibliothèque swf AS2 compatible MTASC
  2. Créer une bibliothèque swf avec haXe
  3. AS3 Création d’un Singleton
  4. Freelance – Protéger votre application flash

3 comments to Classe Main compatible MTASC

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">