在Flash MX中制作Mask特效--朦胧的脸

相信许多朋友都已知晓，在 Flash MX 中可以利用 Action 来实现以往用 Mask 层才能制作出 Mask 的特效，但或许仍有诸多的朋友还未来得及尝试，这次我们就带领大家一起漫游 Flash MX 的 Mask 特效历程。

首先我们先来观赏一下完整作品的效果(如图 1)

图 1

当我们点击了图中的红色按钮后，就出现了右边的图形特效。在部分显示出的图形中，我们隐约能够分辨出在这个效果示例中我们放置了两个图形，一张为带有翅膀的天使，一张为石马，类似窗帘拉伸的特效使两幅图形若隐若现。

步骤 1 首先准备两张被遮照的图形，如图 2、3 所示。

图 2

图 3

步骤 2 制作一个运动的遮照层(如图 4)

图 4

从图 4 中我们可以发现，在此例中我们只对几条色动作了一个 Motion 运动，这里的效果将决定最后遮照物显示的方式，它们按照我们所制作的运动方式来显示(这里我们制作的是窗帘的拉动效果)。

步骤 3 我们将上述的图形与遮照层放置入主场景中，并设置它们各自的实例名称(angel、scenery、stripes1、stripes2)，如图 5 所示。

在此我们并没有设置任何的 Mask 层，自然也就没有任何的被 Mask 的图层。接下来我们建立一个 Actions 层，并输入如下的代码：

stop();

//设置天使与石马两个 MC 的可见性为否

angel._visible = false;

scenery._visible = false;

//设置两个运动的 Mask 的可见性为否，并将它们设置为暂停运动

stripes1._visible = false;

stripes2._visible = false;

stripes1.stop;

stripes.stop;

//Mask 运动控制按钮

dual.onPress = function() {

//设置天使与石马两个 MC 的可见性为真

angel._visible = true;

scenery._visible = true;

//设置天使与石马为被 Mask，而 stripes1 与 stripes2 为主 Mask 层

scenery.setMask(stripes1);

angel.setMask(stripes2);

// stripes1 与 stripes2 开始作 Motion 运动以达到动态的 Mask 效果

stripes1.gotoAndPlay(1);

stripes2.gotoAndPlay(1);

};

到此我们终于完成了 Mask 的特效实例。在此实例中我们仅仅用了 setMask 一个设置 Mask 的命令，就将原来在 Flash5 中需要在 Layer 中设置 Mask 的功能转化了。当然我们此次所举的只是一个极其简单的实例，大家如果有兴趣还可以用 lineto 等命令将主 Mask 层和被 Mask 层动态地绘制出来，然后再作 Mask 效果，这样就可达到无法预料的美妙特效哦！快动手试试吧！