遮罩与遮盖同时出现的图片切换栅格化切换 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

   

    先看效果:

   

    这是在第一种图像切换的基础上,添加一些表面特效而做出来的,方法也并不复杂,只要再做一个图层,放在最上面,内容跟遮罩层一样就行了.

    具体做法:

    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);

最新文章