好些日子没有玩flash了,今天拾起来作了几个练习,发现之前在吕聪贤网页上看到的alpha通道遮罩居然不会做,出错了N久,最后在帮助中找到了一句话,特此面壁思过一下。
在flash8版本之前,要想做朦胧效果的遮罩,就必须在遮罩块的上面同时做一个羽化或者渐变的元件,使之能够于遮罩块同步,这样效果差,而且麻烦。
现在flash8里可以完全不用搞第三个元件,就做出朦胧的遮罩效果,但是需要谨记三个因素:
1.遮罩与被遮罩元件都必须是影片剪辑(MovieClip)。因为alpha通道的遮罩效果必须是用AS来完成,遮罩层的方式是无法出现类似朦胧状的遮罩效果。语句范例是mc.setMask(Mask_mc)。
2.被遮罩的一方(需要显示的一方)一定要在属性面板中选中“使用运行时位图缓存”这个选项。否则的话,绝对看不到半透明的遮罩效果,不过,如果你曾经给被遮罩的一方施加了滤镜效果,那就等于自动添加了位图缓存。也就无须在选中那个选项。
3.遮罩的一方(显示区域的一方),如果只做半透明遮罩,就必选“使用运行时位图缓存”这个选项,否则的话,半透明遮罩失效。如果要做朦胧效果的遮罩,就必须添加滤镜,并在滤镜中突出模糊效果,这样就可以看到效果了。
综合了一下,就是三个步骤:影片剪辑-全部选中“使用运行时位图缓存”这个选项或添加滤镜效果-用AS来完成。
下面是范例步骤。
新建一个mc,命名ball(场景中实例名同),里面有个填充任意色的圆。导入一张图片,F8转成mc,命名为img(场景实例名同),将两个元件全部拖入到场景,分别在属性面板中选中“使用运行时位图缓存”这个选项;然后在第一帧输入以下代码:img.setMask(ball);startDrag("ball",true)。OK了。
效果预览: