6
mai
2007
mai
2007
Action Script // AS2
Classe Main compatible MTASC
Voici la classe avec la méthode statique main que j’utilise pour mes applications flash compilées avec MTASC.
// Classes Debug
import com.bourre.log.Logger;
import com.bourre.log.LogLevel;
import com.bourre.utils.LuminicTracer;
/**
* Point d'entrée du programme, Compatible MTASC (MotionTwin ActionScript 2 Compiler)
*
* @class MainExemple
* @version 0.1
*/
class delfiweb.application.MainExemple
{
/*----------- Composants de la scène ------------*/
private static var _oInst:MainExemple; // L'instance unique du singleton
/*----- Movies Clip ------*/
private var _mcBase:MovieClip;
/*----- Constantes ------*/
private var _nDepth:Number;// Pointeur sur le niveau
/*----- Variables URL HTML ------*/
private var _sUrlXMLConfig:String; // url du fichier xml de configuration
private var _sUrlXMLSkin:String; // url du fichier xml de configuration
/**
* Constructeur privé
*
* @param container : le movie clip sur lequel le swf est instancié
* @return Void
*/
private function MainExemple (container:MovieClip)
{
/* récupération des paramètres transmis dans l'url */
/***************************************************/
/*--- infos ---*/
container.pathXmlConfig = container._parent.XMLpath; // xml de config
container.pathXmlSkin = container._parent.XMLskin; // xml du template
// on stocke un pointeur sur le niveau
_mcBase = container;
this._sUrlXMLConfig = _mcBase.pathXmlConfig;
this._sUrlXMLSkin = _mcBase.pathXmlSkin;
}
/**
* C'est le point d'entrée du programme, appelé sur la première image du fla,
* elle est compatible MTASC
*
* @usage MainExemple.main()
* @method static main
* @return Void
*/
public static function main (container:MovieClip)
{
MainExemple.destruct(); // supprime l'instance de la classe si elle existe
if(_oInst == undefined)
{
_oInst = new MainExemple(container);
_oInst._init(); // On lancera l'initialisation du swf
}
}
/**
* @property instance (MainExemple) L'instance unique de la classe MainExemple (read-only)
*/
public static function get instance ():MainExemple
{
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)
{
delete _oInst; // détruit l'instance Principale
_oInst = undefined;
}
}
/**
* Initialisation du programme.
*
* @usage MainExemple.instance._init()
* @method _init
* @return Void
*/
private function _init()
{
_nDepth = 10;
Stage.showMenu = true;
var oCMenu = new ContextMenu();
var oCMenuItem1 = new ContextMenuItem("Made By Delfiweb");
var oCMenuItem2 = new ContextMenuItem("Contact author");
oCMenuItem1.onSelect = MainExemple._gotoDelfiweb;
oCMenuItem2.onSelect = MainExemple._contactAuthor;
oCMenu.customItems.push(oCMenuItem1);
oCMenu.customItems.push(oCMenuItem2);
oCMenu.hideBuiltInItems();
_mcBase._parent.menu = oCMenu;
// init the debugger
this.addDebug();
}
public static function _gotoDelfiweb()
{
getURL("http://www.delfiweb.com", "_self");
} // End of the function
public static function _contactAuthor()
{
getURL("mailto:test@delfiweb.com", "_self");
} // End of the function
/*----------------------------------------------------------*/
/*------------- Le Debugger Flash --------------------------*/
/*----------------------------------------------------------*/
/**
* Ajoute la gestion du debug dans l'application.
*
*
*/
private function addDebug():Void
{
Logger.getInstance().addLogListener( LuminicTracer.getInstance() );
Logger.LOG("___ Logging API ready in LuminicTracer ___", LogLevel.INFO);
this.buildUI();
}
/**
* Lance la construction de votre application
*
*
*/
private function buildUI() : Void
{
// créer les vues, les modèles... , tous ce qui permettra l'éxécution de l'application.
}
/*----------------------------------------------------------*/
/*------------- Divers -------------------------------------*/
/*----------------------------------------------------------*/
/**
* Renvoi la représentation de l'objet sous forme de chaîne.
* @usage trace(myPH);
* @return la représentation de l'objet sous forme de chaîne.
*/
public function toString ():String
{
return "[object MainExemple]";
}
}// fin de la classe
import com.bourre.log.Logger;
import com.bourre.log.LogLevel;
import com.bourre.utils.LuminicTracer;
/**
* Point d'entrée du programme, Compatible MTASC (MotionTwin ActionScript 2 Compiler)
*
* @class MainExemple
* @version 0.1
*/
class delfiweb.application.MainExemple
{
/*----------- Composants de la scène ------------*/
private static var _oInst:MainExemple; // L'instance unique du singleton
/*----- Movies Clip ------*/
private var _mcBase:MovieClip;
/*----- Constantes ------*/
private var _nDepth:Number;// Pointeur sur le niveau
/*----- Variables URL HTML ------*/
private var _sUrlXMLConfig:String; // url du fichier xml de configuration
private var _sUrlXMLSkin:String; // url du fichier xml de configuration
/**
* Constructeur privé
*
* @param container : le movie clip sur lequel le swf est instancié
* @return Void
*/
private function MainExemple (container:MovieClip)
{
/* récupération des paramètres transmis dans l'url */
/***************************************************/
/*--- infos ---*/
container.pathXmlConfig = container._parent.XMLpath; // xml de config
container.pathXmlSkin = container._parent.XMLskin; // xml du template
// on stocke un pointeur sur le niveau
_mcBase = container;
this._sUrlXMLConfig = _mcBase.pathXmlConfig;
this._sUrlXMLSkin = _mcBase.pathXmlSkin;
}
/**
* C'est le point d'entrée du programme, appelé sur la première image du fla,
* elle est compatible MTASC
*
* @usage MainExemple.main()
* @method static main
* @return Void
*/
public static function main (container:MovieClip)
{
MainExemple.destruct(); // supprime l'instance de la classe si elle existe
if(_oInst == undefined)
{
_oInst = new MainExemple(container);
_oInst._init(); // On lancera l'initialisation du swf
}
}
/**
* @property instance (MainExemple) L'instance unique de la classe MainExemple (read-only)
*/
public static function get instance ():MainExemple
{
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)
{
delete _oInst; // détruit l'instance Principale
_oInst = undefined;
}
}
/**
* Initialisation du programme.
*
* @usage MainExemple.instance._init()
* @method _init
* @return Void
*/
private function _init()
{
_nDepth = 10;
Stage.showMenu = true;
var oCMenu = new ContextMenu();
var oCMenuItem1 = new ContextMenuItem("Made By Delfiweb");
var oCMenuItem2 = new ContextMenuItem("Contact author");
oCMenuItem1.onSelect = MainExemple._gotoDelfiweb;
oCMenuItem2.onSelect = MainExemple._contactAuthor;
oCMenu.customItems.push(oCMenuItem1);
oCMenu.customItems.push(oCMenuItem2);
oCMenu.hideBuiltInItems();
_mcBase._parent.menu = oCMenu;
// init the debugger
this.addDebug();
}
public static function _gotoDelfiweb()
{
getURL("http://www.delfiweb.com", "_self");
} // End of the function
public static function _contactAuthor()
{
getURL("mailto:test@delfiweb.com", "_self");
} // End of the function
/*----------------------------------------------------------*/
/*------------- Le Debugger Flash --------------------------*/
/*----------------------------------------------------------*/
/**
* Ajoute la gestion du debug dans l'application.
*
*
*/
private function addDebug():Void
{
Logger.getInstance().addLogListener( LuminicTracer.getInstance() );
Logger.LOG("___ Logging API ready in LuminicTracer ___", LogLevel.INFO);
this.buildUI();
}
/**
* Lance la construction de votre application
*
*
*/
private function buildUI() : Void
{
// créer les vues, les modèles... , tous ce qui permettra l'éxécution de l'application.
}
/*----------------------------------------------------------*/
/*------------- Divers -------------------------------------*/
/*----------------------------------------------------------*/
/**
* Renvoi la représentation de l'objet sous forme de chaîne.
* @usage trace(myPH);
* @return la représentation de l'objet sous forme de chaîne.
*/
public function toString ():String
{
return "[object MainExemple]";
}
}// fin de la classe