Fonction pour masquer un clip dynamiquement

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 738 fois - Téléchargée 24 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

Messages postés
3
Date d'inscription
mercredi 8 mars 2006
Statut
Membre
Dernière intervention
5 août 2006

c'est vrai qu'il faut lui couper la tete, on a pas le droit d'etre aussi méchant.
Messages postés
1378
Date d'inscription
samedi 9 octobre 2004
Statut
Membre
Dernière intervention
1 novembre 2010
1
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!!!
Messages postés
47
Date d'inscription
mercredi 10 novembre 2004
Statut
Membre
Dernière intervention
23 mai 2006

>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 !
Messages postés
316
Date d'inscription
vendredi 23 mai 2003
Statut
Membre
Dernière intervention
19 septembre 2012

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...
Messages postés
1158
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
6 août 2010

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.