×

新导航介绍,点击查看

制作鼠标跟随特效

发表日期:2006-07-17 摄影器材: 点击数: 投票数:
复制影片剪辑(Movie clip,以下简称MC)duplicateMovieClip的应用,把同一个MC复制好多份,让它们跟着鼠标跑,重点就在于要怎么跟着鼠标跑才会好看,跟着有点紧又不太紧,才会有甩来甩去的效果。只要了解这个技巧就不难了~~
 
  1、打开Flash MX,新建一个文件,在主场景里画上你希望跟随在鼠标后面的图案不需要画的太大,本例的图案是3个大小不一的圈。

 
  2、在主场景中选中你画好的图案,按F8将它转换为MC,取名为“鼠标尾巴”。

 
  3、在属性面板中将“鼠标尾巴”的实例名取为“Tail_mc”。

 
  4、选中“鼠标尾巴”按F8再次将它转换为MC,取名为“鼠标拖动动画”。如此一来,“鼠标尾巴”MC就被包含在“鼠标拖动动画”MC之内了。

 
  5、点选画面上的“鼠标拖动动画”MC,打开动作脚本面板输入下列动作脚本代码:
onClipEvent (load) {
// 初始化变量;
StartSize = 20;
MaxStep = 20;
SizeIncrement = 15;
// 复制尾巴符号;
for (var i = 1; i
duplicateMovieClip(Tail_mc, 'Tail'+i, i);
with (eval('Tail'+i)) {
_xscale = StartSize+(i*SizeIncrement);
_yscale = StartSize+(i*SizeIncrement);
_alpha = 100-(100/MaxStep)*(i-1);
}
}
// 隐藏原始的符号;
Tail_mc._visible = false;
}

 
  我们将这一大段的动作脚本加在MC的load时间中,目的是让符号一载入时就作好一些初始化的工作。这里完成了三个工作:初始化变量、复制尾巴符号、隐藏原始符号。首先来看初始化的变量的意义:
StartSize 鼠标尾巴图形起始的大小,20代表20%。
MaxStep 要复制几个符号跟着拖动,数字越大则尾巴越长。
SizeIncrement 每个符号递增的大小,15代表15%。
  接着用一个for循环来复制“鼠标尾巴”的MC,变量i从1跑到MaxStep,也就是20,所以总共会复制出20个符号来。duplicateMovieClip复制出来的符号名称是用['Tail'+i]组合出来的,结果就是Tail1、Tail2、Tail3……一直到Tail20。
  MC复制出来之后,要一个一个的设置它们的大小和透明度,在第9行里使用了一个with命令,这样一来下面大括号里的属性都不需要再加上MC的名称,通通是以with中所指定的名称来作为符号名称,这样可以少打很多字,不错吧!水平和垂直方向的放缩(_xscale,_yscale)都是以StartSize为基准再加上SizeIncrement*i,这样一来复制出来的MC就会越来越大,因为i的值是从1到20,所以放缩值是35、50、65……。而透明度(_alpha)则是很平均的递减,值为 100、95、90……一直到5。
  当MC都复制完了之后,第16行将原始的mc“Tail_mc”(即主场景中的“鼠标拖动动画”)隐藏起来即可。
 
  6、接下来,在刚才脚本代码的后面继续添加动作脚本代码如下:
onClipEvent (enterFrame) {
// 让第一个符号跟着鼠标移动;
Tail1._x = _xmouse;
Tail1._y = _ymouse;
// 让其他符号跟着前一个符号移动;
for (var i = 2; i
Temp = eval('Tail'+i);
Temp.xdistance = (eval('Tail'+(i-1))._x-Temp._x)/2+Temp.xdistance*0.3;
Temp.ydistance = (eval('Tail'+(i-1))._y-Temp._y)/2+Temp.ydistance*0.3;
Temp._x += Temp.xdistance;
Temp._y += Temp.ydistance;
}
}
  这段代码的作用是用来控制复制出来的的MC的运动的。将程序代码加在MC的ente***me事件中,让没个尾巴符号都能不断的更新坐标位置,才能跟的上鼠标的移动。
  Tail1._x = _xmouse;Tail1._y = _ymouse;这两句让第一个复制出来的MC紧跟着鼠标移动,后面的MC就一个接着一个的追着前一个MC运动。例如Tail2追Tail1、Tail3追Tail2、Tail4追Tail3……以此类推。但是又不能追的太紧,否则就没有甩动的效果了。所以在下面的用循环控制每个MC的坐标的同时,使用了一个小技巧,这也是鼠标跟随效果的最重要的精华所在:
为了不让Tail2追着Tail1追的太紧,所以只能让Tail2前进到两者之间距离的一半,也就是(Tail1._x-Tail2._x)/2,这是X轴的坐标,Y轴的也一样。但若每次都只跑一半的距离,这样永远都不会追上,不管两者距离多小,永远都存在着一半的距离,这样就没办法形成甩动的效果,所以就让它再多跑一点点,整个运算公式用口语来叙述就变成:
(前一个MC坐标 - 当前MC坐标) / 2 + 两者之间的距离 * 0.3
  其中多跑一点就用“两者之间的距离 * 0.3”来代替,要特别注意的是“两者之间的距离”是上次移动的距离,而不是这次移动的距离。若上次移动的距离很大而这次移动的很小,那么“两者之间的距离 * 0.3”计算出来的值就有可能超过这次移动的距离,从而产生甩动的效果。
 
  7、鼠标跟随的效果做好了,输出影片测试一下吧。
你还可以通过修改“鼠标尾巴”这个MC里面的图案来获得不同的鼠标跟随效果!
 

作者:用心叹世界

《制作鼠标跟随特效》


下一篇:没有了

最 新:
没有其它新的作品了

更多用心叹世界的POCO作品...

评论