com.neolao.controls.LoadMultiple
Chargement successif de plusieurs LoadManager.
Classes recquises:
Propriétés
Visibilité | Type | Nom | Status | Description |
---|---|---|---|---|
public | Array | loaders | Liste des LoadManager à lancer successivement | |
public | Array | urls | Liste des urls | |
public | Number | timer | Le temps mort entre chaque chargement |
Méthodes
Visibilité | Return | Nom | Param 1 | Description |
---|---|---|---|---|
public | Void | load | pUrl:String | Lance le chargement |
Evénements
Nom | Param 1 | Param 2 | Param 3 | Param 4 | Description |
---|---|---|---|---|---|
onLoad | Evénement invoqué lorsqu'un chargement est terminé. | ||||
onLoading | pBytesLoaded:Number | pBytesTotal:Number | pIndex:Number | pTotal:Number | Evénement invoqué pendant un chargement. |
onFileNotFound | pUrl:String | Evénement invoqué lorsque le fichier à charger n'a pas été trouvé. | |||
onTimeOut | pUrl:String | Evénement invoqué lorsqu'un chargement fait un timeout. | |||
onNoTarget | Evénement invoqué lorsque la cible du chargement disparait. |
Change log
[04/10/2004] Version 1.0
Création
[06/10/2004] Version 1.1
Ajout de l'événement onNotarget
[21/09/2005] Version 1.2
On envoi l'url di fichier en cours de chargement en paramètre en plus à onLoading
[04/10/2005] Version 1.3
Modification de la méthode nextLoad, j'utilise Delegate maintenant
Source
import com.neolao.LogManager; import com.neolao.controls.Delegate; /** * Chargement successif de plusieurs LoadManager * @author neolao <neo@neolao.com> * @version 1.3 (04/10/2005) * @link http://resources.neolao.com/flash/classes/controls/LoadMultiple * @license http://creativecommons.org/licenses/by-sa/2.0/ */ dynamic class com.neolao.controls.LoadMultiple { public var className:String = "LoadMultiple"; public var version:String = "1.3"; // ----------------------------- CONSTANTES -------------------------------- /** * Le timer par défault */ private var DEFAULT_TIMER:Number = 50; // ----------------------------- VARIABLES --------------------------------- /** * Liste des LoadManager à lancer successivement */ private var _loaders:Array; /** * Liste des urls à charger */ private var _urls:Array; /** * L'index du load courant */ private var _currentLoad:Number; /** * Timer entre chaque load */ private var _timer:Number; /** * logs */ private var _log:LogManager; // ----------------------------- EVENEMENTS -------------------------------- /** * Evénement invoqué lorsque les chargements sont terminés */ public var onLoad:Function; /** * Evénement invoqué pendant le chargement global * @param pBytesLoaded Le nombre de bytes chargés * @param pBytesTotal Le nombre de bytes total * @param pIndex L'index courant * @param pTotal Le nombre total de loader */ public var onLoading:Function; /** * Evénement invoqué lorsqu'un fichier à charger n'a pas été trouvé * @param pUrl L'url du fichier */ public var onFileNotFound:Function; /** * Evénement invoqué lorsqu'un chargement fait un timeout * @param pUrl L'url du fichier */ public var onTimeOut:Function; /** * Evénement invoqué lorsque la cible disparait * @param pUrl L'url du fichier */ public var onNoTarget:Function; /*============================= CONSTRUCTEUR =============================*/ /*========================================================================*/ /** * Constructeur */ public function LoadMultiple(){ _log = new LogManager(className); _timer = DEFAULT_TIMER; } /*======================= FIN = CONSTRUCTEUR = FIN =======================*/ /*========================================================================*/ /*=========================== METHODES PRIVEES ===========================*/ /*========================================================================*/ /** * Lance le prochain chargement */ private function nextLoad(){ _currentLoad++; if(_currentLoad <= _loaders.length){ _loaders[_currentLoad - 1].onLoad = Delegate.create(this, function(){ setTimeout(this, "nextLoad", _timer); }); _loaders[_currentLoad - 1].onLoading = Delegate.create(this, function(pBytesLoaded:Number, pBytesTotal:Number){ _onLoading(pBytesLoaded, pBytesTotal); }); _loaders[_currentLoad - 1].onFileNotFound = Delegate.create(this, function(pUrl:String){ onFileNotFound(pUrl); }); _loaders[_currentLoad - 1].onTimeOut = Delegate.create(this, function(pUrl:String){ onTimeOut(pUrl); }); _loaders[_currentLoad - 1].onNoTarget = Delegate.create(this, function(pUrl:String){ onNoTarget(pUrl); }); _log.action = "Début du chargement " + _currentLoad + "."; _loaders[_currentLoad - 1].load(_urls[_currentLoad - 1]); }else{ // Tous les chargements sont terminés _log.action = "Les " + loaders.length + " sont terminés."; onLoad(); } } /** * Méthode invoquée lors des chargements * @param pBytesLoaded bytes chargés * @param pBytesTotal bytes total */ private function _onLoading(pBytesLoaded:Number, pBytesTotal:Number){ onLoading(pBytesLoaded, pBytesTotal, _currentLoad, _loaders.length, _urls[_currentLoad - 1]); } /*===================== FIN = METHODES PRIVEES = FIN =====================*/ /*========================================================================*/ /*============================ GETTER SETTER ============================*/ /*========================================================================*/ /** * Liste des LoadManager à lancer successivement */ public function set loaders(pList:Array){ _loaders = pList; } public function get loaders():Array{ return _loaders; } /** * Liste des urls */ public function set urls(pList:Array){ _urls = pList; } public function get urls():Array{ return _urls; } /** * Le temps mort entre chaque chargement */ public function set timer(pTimer:Number){ if(pTimer != undefined && pTimer > 0){ _timer = pTimer; } } public function get timer():Number{ return _timer; } /*====================== FIN = GETTER SETTER = FIN ======================*/ /*========================================================================*/ /*========================== METHODES PUBLIQUES ==========================*/ /*========================================================================*/ /** * Lance le chargement */ public function load(){ if(_loaders != undefined && _urls != undefined){ _log.action = "Lancement des " + loaders.length + " chargements."; _currentLoad = 0; nextLoad(); }else{ _log.error = "Il manque des paramètres"; } } /*==================== FIN = METHODES PUBLIQUES = FIN ====================*/ /*========================================================================*/ }