flash中实现场景转换中的马赛克效果(2)

2008-04-02 11:03:43来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折


  arrayK[i] = a;

  i ;

  }

   }

  return arrayK;

  };

  function maskT() {//主要的函数.在第三帧里面会用setInterval调用.

  var a = [];

  a = randomKdiffer(0, 99, 10);//找到十个随机数,为的是下一步清除对

  应的小方块.

  for (var i = 0; i<10; i ) {//一次性清除十个随机的方块,

  mcMask["mcM" a[i]].removeMovieClip();

  }

  for (j=0; j<100; j ) {//判断小方块是否全被清除.

  if (_root.mcMask["mcM" j] != undefined) {

  break;

  }

  }

  if (j>=100) {//假如全被清除,则重新定义对象和变量值.

  clearInterval(_root.maskMc);//把清除时间间隔变量(在下一帧中).

  _root["mc" k].swapDepths(2);//重新把下层的MC深度提到上层.

  k--;//控制MC复制的k值减少1,表示再一次复制的时候就复制后一个MC.

  if (k<1) {//假如k值小于1,就从3开始重新循环.并重新把下层的MC

  (已提高到上层)定义为被遮罩层.

  k = 3;

  eval("mc" 1).setMask(mcMask);

  } else {

  eval("mc" (k 1)).setMask(mcMask);

  }

  _root.gotoAndPlay(2);//跳到第二帧重新执行.

  }

  }

  这一帧主要是先定义下层的MC,因为上一层的MC在前一次循环时已定义过了(初始化由第一帧代码完成),并且在最后(当小方块全消失时,原来的上层已不可见,这时下层提升到上层,外观上看不出来)提升到上层且被定义为被遮罩.遮罩层的小方块能够看到又重新生成了,所以我拉看到的仍是前一次循环的下层图画.再经历一次循环,利用k值的循环递减,我们能够不断地复制下层的图画,达到周而复始的效果.只要理解了k的作用,其他的也就好懂了.注意第二帧我们复制的深度是1,代表下层.到了小方块全部清除时才提升到2.第三帧就是让时间头停下,间隔0.2秒执行maskT函数.因为一次清除十个MC(这里有重复也不用担心).

  所以看起来就是方块随机消失,而消失完后,又返回第二帧开始新的一轮.这一帧是循环的保障.其他的几个全局变量是为了更好地控制图片的位置和尺寸的. 我们能够更改图片的尺寸而无需改代码. 但是有一点要注意,各图片最好是相同大小.但是,就代码的特点来看,我们也能够把图片设为不同的尺寸,只要稍微改变一下就行了.这里就留给大家自己思考了.假如要加入更多的图片,只要把链接名称命名为"mc" i(i=1,2,3...)就行了,相应地修改k的循环判断值.

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: FlashAS学习:深入BroadcasterMX

下一篇: Flash播放器显示LRC歌词代码