com.neolao.movieclip.MCUtils

Methodes utiles sur les MovieClip.

Classes recquises:

Méthodes

Visibilité Return Nom Param 1 Param 2 Param 3 Param 4 Description
static public Boolean destroyMovieClip pMc:MovieClip Supprime un movieClip
static public Object coordinatesConvert pMcOrg:MovieClip pMcEnd:MovieClip pX:Number pY:Number Converti les coordonnees sur un MovieClip vers un autre
static public Void swapMovieClip pMc1:Object pMc2:Object Echange les positions de 2 movieClip 1)
static public Void shuffleMovieClip pList:Array Mélange les positions des movieClip 2)
static public Number nextFreeDepth pMc:MovieClip Trouve la prochaine profondeur libre à partir d'un clip

Source

import com.neolao.data.TypeUtils;
/**
 * ATTENTION : UTF-8 (éàöù)
 * 
 * [01/09/2004] Version 1.5
 * 
 * [07/09/2004] Version 1.6
 * Ajout des methodes :
 * - swapMovieClip
 * - shuffleMovieClip
 * 
 * [16/09/2004] Version 1.7
 * Correction de la methode destroyMovieClip
 * 
 * [17/09/2004] Version 1.8
 * Correction de la methode destroyMovieClip
 * Création d'un clip à la même profondeur que le clip à détruire pour le forcer
 * 
 * [25/10/2004]
 * Un ptit check up !
 * 
 * [12/10/2005] Version 1.9
 * Ajout de la méthode nextFreeDepth
 * 
 * [25/10/2005] Version 2.0
 * Modification de la méthode nextFreeDepth
 * 
 * [22/11/2005] Version 2.1
 * Modification de swapMovieClip : on swap aussi les depth
 * Modification de nextFreeDepth : algo merdique
 * @ignore
 * 
 * Méthodes statiques diverses liées aux MovieClip
 * @author			neolao <neo@neolao.com>
 * @version			2.1 (22/11/2005)
 * @link			http://resources.neolao.com/flash_fp8/classes/movieclip/MCUtils
 * @license			http://creativecommons.org/licenses/by-sa/2.5/	
 */
class com.neolao.movieclip.MCUtils {
	public static var className:String = "MCUtils";
	public static var version:String = "2.1";
 
	// ----------------------------- CONSTANTES --------------------------------
 
	// ----------------------------- VARIABLES ---------------------------------
 
	/*=========================== METHODES PRIVEES ===========================*/
	/*========================================================================*/
 
	/*===================== FIN = METHODES PRIVEES = FIN =====================*/
	/*========================================================================*/
 
 
	/*========================== METHODES PUBLIQUES ==========================*/
	/*========================================================================*/
	/**
	 * Supprime un movieClip
	 * @param pMc Le movieClip a supprimer
	 * @return true si l'operation est reussie, sinon false
	 */
	public static function destroyMovieClip(pMc:MovieClip):Boolean {
		var VARnextDepth:Number;
		var VARmcTmp:MovieClip;
 
		if(TypeUtils.isMovieClip(pMc)){
			VARnextDepth = pMc._parent.getNextHighestDepth();
			pMc.swapDepths(VARnextDepth);
			pMc = pMc._parent.createEmptyMovieClip("__trash_" + pMc._name, VARnextDepth);
			pMc.removeMovieClip();
 
			return (pMc.getDepth() != undefined)?false:true;
		}else{
			return false;
		}
	}
	/**
	 * Converti les coordonnees sur un MovieClip vers un autre
	 * @param pMcOrg Le movieClip d'origine
	 * @param pMcEnd Le MovieClip d'arrive
	 * @param pX La coordonnee x a convertir
	 * @param pY La coordonnee y a convertir
	 * @return Object.x et Object.y qui sont les coordonnées converties vers pMcEnd
	 */
	public static function coordinatesConvert(pMcOrg:MovieClip, pMcEnd:MovieClip, pX:Number, pY:Number):Object{
		var vResult:Object = new Object();
 
		vResult.x = pX;
		vResult.y = pY;
 
		if(pMcOrg != pMcEnd){
			pMcOrg.localToGlobal(vResult);
			pMcEnd.globalToLocal(vResult);
		}
 
		return vResult;
	}
	/**
	 * Echange les positions de 2 movieClip (applicable a d'autres types d'instance)
	 * @param pMc1 Premiere instance
	 * @param pMc2 Deuxieme instance
	 */
	public static function swapMovieClip(pMc1:Object, pMc2:Object):Void{
		var xClip1:Number = pMc1._x;
		var yClip1:Number = pMc1._y;
 
		pMc1._x = pMc2._x;
		pMc1._y = pMc2._y;
 
		pMc2._x = xClip1;
		pMc2._y = yClip1;
 
		pMc1.swapDepths(pMc2);
	}
	/**
	 * Mélange les positions des movieClip (applicable a d'autres types d'instance)
	 * @param pList Liste des instances à melanger
	 */
	public static function shuffleMovieClip(pList:Array):Void{
		var vTotal:Number = pList.length;
 
		if(vTotal > 1){
			// Il y a au moins 2 instances à mélanger
			for(var i:Number=0; i<vTotal; i++){
				swapMovieClip(pList[i], pList[Math.floor(Math.random()*vTotal)]);
			}
		}
	}
	/**
	 * Trouve la prochaine profondeur libre à partir d'un clip
	 * @param pMc Un clip
	 * @return La prochaine profondeur libre
	 */
	public static function nextFreeDepth(pMc:MovieClip):Number{
		var i:Number = pMc.getDepth();
		while(pMc._parent.getInstanceAtDepth(++i)){
		}
		return i;
	}
	/*==================== FIN = METHODES PUBLIQUES = FIN ====================*/
	/*========================================================================*/
}

1) , 2) applicable a d'autres types d'instance