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 ====================*/ /*========================================================================*/ }