PowrePoint里面很常用的效果,我说不出名字,姑且叫"马赛克渐变"效果吧. 就是图片方格化退去,显出另一幅图画.另一幅图画过了一会儿又方格化退去,显示下一张.如此循环.大家能够看看我的源文档先.里面用了三幅图.这个效果很实用,.您能够用在LOGO上或企业的产品宣传上,简单美观.
好了,闲话不说,介绍一下思路先.
我们的思路是:场景里一共有四个MC.最下面一层用做相框,不会用到,我们设深度为0;中间两层是真正要显示的图画,分别设深度为1,2,我们用"上层","下层"来代表. 顶层是遮罩,也是方块效果的关键.我们设为3.
既然遮罩层是关键,我们就先说他.
这个做为遮罩的MC是用AS建的一个空MC,名儿为mcMask,在mcMask里复制了10*10个并排无隙的小方块,(当然,在实际的代码中能够看到,我把宽和长分开了的,所以实际上能够是长方形,这里只是为了叙述方便).
我们的目的是让这些小方块被随机地清除,直到全部被清除掉,由于mcMask是上层图画的遮罩,故该图也就"方块化"地消失了,下层等长宽(我们把图设为等长宽,这些方便一点,也美观一点儿)的图画也就"方块化"地显现了. 当方块全部清除后,我们把下层的图画提高到上层,再复制另一幅图画到下层,做一次循环.这就达到一种周而复始的效果.
思路就是这样的,假如您更有些疑惑,别急,先看一下效果。
下面我讲讲代码的编写您就明白了.
主场景中共有三帧代码.第一帧是对一些对象和变量初始化:
_global.k = 2;//决定图画的复制.
_global.xpos = 135;//决定图画的横坐标.
_global.ypos = 135;//决定图画的横坐标.
attachMovie("mc" 3, "mc" 3, 2);//复制初始状态下上层的
图画.(希望"上层"这个词您不会产生歧义)
with (eval("mc" 3)) {
_x = xpos;
_y = ypos;
}
attachMovie("border", "border", 0);//复制相框.放在底层.
with (border) {
_x = xpos;
_y = ypos;
}
_root.createEmptyMovieClip("mcMask", 3);//生成遮罩层,
下一帧我们将在里面复制小方块.
with (mcMask) {
_x = xpos;
_y = ypos;
}
eval("mc3").setMask(mcMask);//初始状态下的设定遮罩,注意被遮罩的对象.
_global.xW = (eval("mc" 3)._width)/10;//确定小方块的长.
_global.yH = (eval("mc" 3)._height)/10;//确定小方块的高.上的面
全局全量在下一帧都会有更周详说明. |
能够看到,我们声明了一些全局变量和MC.假如您对他们的用途有疑问, 不用担心,呆会儿我们就会讲到.
第二帧代码:
attachMovie("mc" k, "mc" k, 1);//复制下层的MC.
with (eval("mc" k)) {
_x = xpos;
_y = ypos;
}
for (i=0; i<100; i ) {//在mcMask,也就是遮罩层里复制小方块.
mcMask.attachMovie("mcM", "mcM" i, i);
with (mcMask["mcM" i]) {
_width = xW;
_height = yH;
_x = (i-4.5)*xW;//如此决定的坐标值,小方块集合的几何中央
就是mcMask的中央点.
_y = (Math.floor(i/10)-4.5)*yH;
}
}
_global.randomKdiffer = function(n, m, k) {//随机函数,
目的是在n~m之间生成k个互异的数,放到数组arrayK中.
arrayK = [];
var i = 0;
while (i<k) {
a = random(m-n 1) n;
for (var j = 0; j<i; j ) {
if (a == arrayK[j]) {
break;
}
}
if (j == i) {
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
|