Masques de Scripting dans le flash


  Share  
|


Employez l'api de dessin pour créer une forme et puis pour employer MovicClip.setMask() pour appliquer le masque.

Des masques peuvent être employés pour créer des formes uniques ou des effets visuels. Par exemple, vous pouvez employer des masques pour créer les chiffons et les transitions ou les animations intéressantes dans lesquels seulement la partie masquée du dessin-modèle est évidente à un moment donné. Vous pouvez même créer les masques qui se déforment avec le temps, et les employez pour masquer les affichages par mémoire d'image (dans des agrafes de film).

Vous pouvez utiliser n'importe quelle agrafe de film comme masque d'une autre agrafe de film en utilisant la méthode de setMask(). La méthode de setMask() s'appelle de l'agrafe de film à masquer, et vous devriez lui passer une référence à l'agrafe de film qui agit en tant que masque :

maskedMovieClip.setMask(maskMovieClip) ;

Dans la plupart des cas, les masques sont des formes simples, telles que des rectangles ou des cercles. Vous n'avez pas besoin d'employer l'api de dessin pour dessiner l'agrafe de film de masque, mais on lui recommande que vous ainsi à moins que le masque soit d'une forme peu commune.

D'abord, voici un exemple dans lequel un masque suit la souris. Le masque est assigné à une agrafe de film contenant une image chargée, ainsi l'effet est que l'utilisateur peut voir seulement la partie de l'excédent d'image qu'il a placé la souris.

//incluez les méthodes de dessin, qui sont nécessaires 
pour la méthode de drawCircle() # incluent "DrawingMethods.as"
//créez une agrafe de film et une agrafe nichée 
de film pour charger/d'image/pour plus d'information sur le besoin de 
créer les agrafes nichées de film en chargeant// JPEGs. externe _ 
root.createEmptyMovieClip("image_mc", 1) ; _ 
root.image_mc.createEmptyMovieClip("imageHolder_mc", 1) ;
//charge l'image dans l'agrafe de film. Vous pouvez 
employer ce URL si vous voulez, mais il // travail seulement tandis 
que vous employez l'essai ou/autonome de 
joueurs/image_mc.imageHolder_mc.loadMovie("http://www.person13.com/ascb/images/image1.jpg")
;
//aspiration l'agrafe masquante _ 
root.createEmptyMovieClip("mask_mc de film", 2) ; 
mask_mc.lineStyle(3, 0x000000, 0) ; mask_mc.beginFill(0, 
100) ; mask_mc.drawCircle(60) ; mask_mc.endFill() ;
//appel la méthode de setMask() sur l'agrafe masquée de 
film et lui passent/masquant de film/agrafe comme paramètre 
image_mc.setMask(mask_mc) ;
//appel la méthode de startDrag() d'agrafe masquante de 
film de sorte que le masque puisse être// déplacé avec le curseur 
mask_mc.startDrag(true) ;

Après, voici un exemple dans lequel un masque est employé pour créer une transition de chiffon entre deux images chargées.

# incluez "DrawingMethods.as"
//créez une agrafe de film et une agrafe nichée 
de film et chargez la première image dans lui _ 
root.createEmptyMovieClip("image0_mc", 1) ; _ 
root.image0_mc.createEmptyMovieClip("imageHolder_mc", 1) ; 
image0_mc.imageHolder_mc.loadMovie("http://www.person13.com/ascb/images/image1.jpg")
;
//créez une autre agrafe de film et une agrafe nichée de
film et chargez la deuxième image dans lui// image0_mc et image1_mc 
sont créés à (0.0). Ceci signifie qu'ils volonté// 
chevauchement. Est ce ce qui nous voulons _ 
root.createEmptyMovieClip("image1_mc", 2) ; _ 
root.image1_mc.createEmptyMovieClip("imageHolder_mc", 1) ; 
image1_mc.imageHolder_mc.loadMovie("http://www.person13.com/ascb/images/image2.jpg")
;
 
//aspiration l'agrafe masquante de film. Les 
dimensions des images sont 640 x 480 (si vous// charge les images en 
utilisant l'URLs fourni) et ainsi le masque devrait être/de 
rectangle/avec les mêmes dimensions _ 
root.createEmptyMovieClip("mask_mc", 3) ; mask_mc.lineStyle(3, 
0x000000, 0) ; mask_mc.beginFill(0, 100) ; 
mask_mc.drawRectangle(640, 480) ; mask_mc.endFill() ;
//position le masque de sorte qu'il soit éteint au côté
gauche de l'étape mask_mc._x = -320 ; mask_mc._y = 240 ;
//appel la méthode de setMask() pour placer le mask_mc 
comme masque pour image1_mc. Ceci/de causes/image0_mc à montrer
au commencement, quoiqu'il soit au-dessous d'image1_mc. 
image1_mc.setMask(mask_mc) ;
//définissez une méthode de traiteur d'événement pour 
image0_mc de sorte que l'agrafe de film de masque déplace// quand 
l'utilisateur clique sur image0_mc. image0_mc.onRelease = 
fonction () {
 //utilisation une méthode de traiteur 
d'événement d'onEnterFrame() de déplacer le masque. Ceci 
suppose que vous// avez les armatures de défaut par arrangement de 
seconde de 12. _ root.mask_mc.onEnterFrame = fonction () {
 //mouvement le masque vers la droite par 12 Pixel 
this._x + = 12 ;
 //si le masque masque entièrement l'image, puis 
suppriment la méthode d'onEnterFrame(). si (this._x > = 320) 
{this._x = 320 ; effacement this.onEnterFrame ; }}}

Si vous employez l'URLs fourni dans cet exemple, alors les images qui sont chargées ont des dimensions de 640 x de 480. Par conséquent, vous pourriez devoir augmenter les dimensions de votre film pour voir les pleines images. Si vous employez vos propres images, elles doivent être de la même résolution pour que l'effet travaille comme décrit.

c'est un article supplémentaire par Elis Frugalo


Share  

© 2005-2010 E-articles.info All Rights Reserved - Terms and conditions