Fonction pour masquer un clip dynamiquement

5/5 (6 avis)

Snippet vu 5 885 fois - Téléchargée 26 fois

Contenu du snippet

Voici une petite fonction que je viens de taper, et qui permet de générer facilement un masque et de l'appliquer à n'importe quel clip de notre animation. Il y a sans doute des optimisations à apporter par-ci par-là...
Attention, ceci ne fonctionne (a priori) qu'en AS2.
En espèrant que ça pourra vous être autant utile qu'à moi :)
PS: c'est le premier code que je poste, alors soyez indulgents !

Source / Exemple :


function masquer(mc:MovieClip,largeur:Number,hauteur:Number,posX:Number,posY:Number){
		
		//on isole le nom du Clip
                mcNom=mc._name
		
		var nomMasque:String="masque_"+mcNom;
		var profondeur:Number=mc._parent.getNextHighestDepth();
		
		//création du masque
		mc._parent.createEmptyMovieClip(nomMasque, profondeur);
		
		largeur=largeur || mc._width;
		hauteur=hauteur || mc._height;
		posX=mc._x+posX || mc._x
		posY=mc._y+posY || mc._y
		
		//récupération du chemin du masque	
		cheminMasque=mc._parent[nomMasque]
		
		//on trace le masque
		cheminMasque.lineStyle(1, 0x000000, 100);
		cheminMasque.beginFill(0x990000);
		cheminMasque.moveTo(posX, posY);
		cheminMasque.lineTo(posX, posY);
		cheminMasque.lineTo(posX, (posY+hauteur));
		cheminMasque.lineTo((posX+largeur), (posY+hauteur));
		cheminMasque.lineTo((posX+largeur), posY);
		cheminMasque.endFill();
		
		//on applique le masque
		mc.setMask(cheminMasque);
	}

Conclusion :


exemples d'utilisation :

masquer(monClip)
masquer(monClip.autreClip)
masquer(monClip,100,150)
masquer(monClip,100,100,12,10)
etc.

A voir également

Ajouter un commentaire Commentaires
jacquesdupontd Messages postés 3 Date d'inscription mercredi 8 mars 2006 Statut Membre Dernière intervention 5 août 2006
7 août 2006 à 01:18
c'est vrai qu'il faut lui couper la tete, on a pas le droit d'etre aussi méchant.
cs_bali_balo Messages postés 1378 Date d'inscription samedi 9 octobre 2004 Statut Membre Dernière intervention 1 novembre 2010 1
25 mai 2006 à 00:26
Je crois qu'on devrait placer sur le site un filtre anti......anti....comment dire cela tout en restant poli ^^


bali_balo....=] j'né un peû râ lé pâcrètes!!!
okaneganai Messages postés 47 Date d'inscription mercredi 10 novembre 2004 Statut Membre Dernière intervention 23 mai 2006
23 mai 2006 à 19:44
>Ca te dit quelque chose : "mc._name" ?

ah oui, c'est vrai que c'est beaucoup mieux... désolé :(

bon ba je rentre chez moi ... snif !
kingcobra Messages postés 316 Date d'inscription vendredi 23 mai 2003 Statut Membre Dernière intervention 19 septembre 2012
23 mai 2006 à 19:18
Lui qui vient de sortir une source la dedans, ça a de quoi l'énerver lol.
Non mais faut arrêter de poster n'importe quoi...
top30 Messages postés 1158 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 6 août 2010
23 mai 2006 à 18:54
import flash.display.BitmapData;
import flash.geom.Rectangle;


masquer( ball ) ;
function masquer( mc, w, h, x, y )
:Void {
w = ( w || mc._width )+2 ;
h = ( h || mc._height )+2 ;
//
var mcMask = mc._parent.createEmptyMovieClip( mc._name+"Mask", mc._parent.getNextHighestDepth() ) ;
mcMask._x = ( x || mc.getBounds(mc._parent).xMin ) -1 ;
mcMask._y = ( y || mc.getBounds(mc._parent).yMin ) -1 ;
mcMask.attachBitmap( new BitmapData(w,h), 1, false, true ) ;
//
mc.setMask(mcMask) ;
}


Et quel que soit le point d'oginie du clip masquer !!!!
Afficher les 6 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.