flash中实现场景转换中的马赛克效果(2)
2008-04-02 11:03:43来源:互联网 阅读 ()
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歌词代码
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash
