先看效果:
这是在第一种图像切换的基础上,添加一些表面特效而做出来的,方法也并不复杂,只要再做一个图层,放在最上面,内容跟遮罩层一样就行了.
具体做法:
1.打开上一次做的FLA文件,另存为一个新的文档,或者直接在WINDOWS下拷贝一个副本.做第二类特效.
2.作为表面特效,应该在遮罩层的上方再添加一个图层.接着,把遮罩层的内容拷贝到新添加的图层里.
因为最后表面是看不到任何覆盖的东西,所以,里头MASK的动画必须最后一帧要不什么都没有,要不全透明.但是,为了不使原来的动画发生改变,我们复制一个元件的副本.
3.点中刚拷贝的MASKFIELD,右键-复制元件,命名为MASKFIELD2,实例名一样.
4.双击MASKFIELD2,进入编辑状态,用3中的办法把MASK复制一个副本MASK2,实例名可以还是MASK.
5.双击进入MASK2,编辑MASK2.这里提供一个动画方案:先删除原来所有的帧,然后在第一帧画跟原来一样大的正方形.把颜色调成白色,ALPHA为0%;然后在第7和第15帧分别插入一关键帧,把第7帧中的正方形的ALPHA改为100%;在第1到第7,以及第7到第15帧之间创建形状补间动画.
6.接着,CONTROL元件也复制一个CONTROL2副本,对里面第二帧的代码进行一些小修改:就是把里头的MASKFIELD全改为MASKFIELD2.
所以最后,三帧的代码分别是
FRAME1:
step=5//定义每次时间轴循环要出现正方形的个数,如果太少,图象切换需要很长时间,太大了,计算机负担大,而且效果出得太快,也不好看.
num=0//记录被复制的MASK的个数.
FRAME2:
for (j=1; j<=2; j++) {
for (i=num; i<=num+step; i++) {
duplicateMovieClip("_parent.maskfield.mask", "mask"+i, i);//复制相应的MC
_parent["maskfield"+j]["mask"+i]._x = _parent.index[i].split("_")[0]*25
_parent["maskfield"+j]["mask"+i]._y = _parent.index[i].split("_")[1]*25
//根据随机分配的索引,定义MC的位置.其中25是正方形的边长.
}
}
if (num>_parent.maxhor*_parent.maxver-1) {
//该条件成立,意味着复制数量已经足够,复制完毕,所以停止.
stop();
}else{
num += Math.min(_parent.maxhor*_parent.maxver-num, step);
//否则记录本次运行复制的MC个数.
}
FRAME3:
gotoAndPlay(2);