com.neolao.controls.interfaces.moduls.ModulWindows

Gestion de fenêtres

Classes recquises :

Propriétés

Visibilité Type Nom Description
public MovieClip targetInstance La cible des fenêtres
public String windowSymbol Le symbole d'une fenêtre
public Number limit La limite du nombre de fenêtre (-1 pour infini ou un nombre négatif)
public Array windows La liste des fenêtres

Méthodes

Visibilité Return Nom Param 1 Description
public MovieClip addWindow Ajoute une nouvelle fenêtre et retourne la référence de l'instance.
public Void removeWindow pWindow Retire une fenêtre
public Void removeAll Retire toutes les fenêtres

Change log

[01/10/2004] Version 1.0

Création

[03/10/2004] Version 1.1

  • Ajout de la gestion des limites
  • Ajout de la méthode removeAll

[04/10/2004] Version 1.2

  • Ajout de la propriété windows

Source

import com.neolao.controls.interfaces.moduls.IModul;
import com.neolao.controls.interfaces.moduls.Modul;
import com.neolao.controls.StackItems;
/**
 * @description 	Gestion de fenêtres
 * @author 		neolao <neo@neolao.com>
 * @version 		1.2 (04/10/2004)
 * @link		http://resources.neolao.com/flash/classes/controls/interfaces/moduls/modulwindows
 */
class com.neolao.controls.interfaces.moduls.ModulWindows extends Modul implements IModul{
	public var className:String = "ModulWindows";
	public var version:String = "1.2";
 
	// ----------------------------- CONSTANTES --------------------------------
 
	// ----------------------------- VARIABLES ---------------------------------
	/**
	 * La cible de la class
	 */
	private var _targetInstance:MovieClip;
	/**
	 * Le symbole d'un window
	 */
	private var _windowSymbol:String;
	/**
	 * La limite du nombre d'item
	 */
	private var _limit:Number;
	/**
	 * Gestionnaire d'items empilés
	 */
	private var _stackItems:Object;
	// ----------------------------- EVENEMENTS --------------------------------
 
 
	/*============================= CONSTRUCTEUR =============================*/
	/*========================================================================*/
	public function ModulWindows(){
		super();
 
		_stackItems = new StackItems();
		if(_stackItems.className == "StackItems"){
			OBJlog.action = "Initialisation du StackItems réussie.";
 
			_stackItems._parentClass = this;
			_stackItems.onLimit = function(){
				var VARparent:Object = this["_parentClass"];
 
				VARparent.funcLimit.apply(VARparent);
			};
		}else{
			OBJlog.error = "Initialisation du StackItems ratée !!!";
		}
 
	}
	/*======================= FIN = CONSTRUCTEUR = FIN =======================*/
	/*========================================================================*/
 
	/*=========================== METHODES PRIVEES ===========================*/
	/*========================================================================*/
	/**
	 * Invoqué lorsque la limite des fenetres est atteinte
	 */
	private function funcLimit(){
		OBJlog.info = "La limite de fenêtres est atteinte. Impossible d'en créer d'autres.";
	}
	/*===================== FIN = METHODES PRIVEES = FIN =====================*/
	/*========================================================================*/
 
	/*============================ GETTER  SETTER ============================*/
	/*========================================================================*/
	/**
	 * La cible de la class
	 */
	public function set targetInstance(pMC:MovieClip){
		_targetInstance = pMC;
		_stackItems.targetInstance = _targetInstance;
		OBJlog.action = "StackItems a une cible : " + _stackItems.targetInstance;
	}
	public function get targetInstance():MovieClip{
		return _targetInstance;
	}
	/**
	 * Le symbole d'un window
	 */
	public function set windowSymbol(pSymbol:String){
		_windowSymbol = pSymbol;
		_stackItems.itemSymbol = _windowSymbol;
		OBJlog.action = "StackItems va utiliser le symbole : " + _stackItems.itemSymbol;
	}
	public function get windowSymbol():String{
		return _windowSymbol;
	}
	/**
	 * La limite du nombre d'item (-1 pour infini ou un nombre négatif)
	 */
	public function set limit(pLimit:Number){
		_limit = pLimit;
		_stackItems.limit = _limit;
	}
	public function get limit():Number{
		return _limit;
	}
	/**
	 * La liste des fenêtres
	 */
	public function get windows():Array{
		return _stackItems.items;
	}
	/*====================== FIN = GETTER  SETTER = FIN ======================*/
	/*========================================================================*/
 
	/*========================== METHODES PUBLIQUES ==========================*/
	/*========================================================================*/
	/**
	 * Ajoute une nouvelle fenêtre
	 * @return L'instance de la fenêtre
	 */
	public function addWindow():MovieClip{
		var vInstance:MovieClip;
 
		vInstance = _stackItems.addItem();
		if(vInstance != undefined){
			OBJlog.action = "Nouvelle fenêtre : " + vInstance + " (total = " + _stackItems.total + ")";
		}
 
		return vInstance;
	}
	/**
	 * Retire une fenêtre
	 * @param pWindow L'instance de la fenêtre à retirer
	 */
	public function removeWindow(pWindow:MovieClip){
		if(_stackItems.removeItem(pWindow)){
			OBJlog.action = "Destruction de la fenêtre réussie.";
		}else{
			OBJlog.error = "Destruction de la fenêtre ratée.";
		}
	}
	/**
	 * Retire toutes les fenêtres
	 */
	public function removeAll(){
		_stackItems.removeAll();
	}
	/*==================== FIN = METHODES PUBLIQUES = FIN ====================*/
	/*========================================================================*/
}