欢迎来到天天文库
浏览记录
ID:38531495
大小:14.77 KB
页数:3页
时间:2019-06-14
《鼠标跟随特效代码》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、鼠标跟随代码物体对鼠标的跟随可以采用在帧上添加as语句starDrag的方法来实现。但是采用这种方法所实现的跟随过程太生硬,跟得实在是紧,也就是当鼠标移动到别的位置,物体也很快的移动了过来,假如要让物体慢慢(速度可以控制)的靠近鼠标,使用starDrag这条语句就不能做到。starDrag语句的功能其实是和下面的代码相同的。onClipEvent(enterFrame){xTarget=_root._xmouse;yTarget=_root._ymouse;_x=xTarget;_y=yTarget;}这几行代码是添加在物体(影片剪辑
2、)上面的。其中,语句_x=xTarget和_y=yTarget的作用是使物体的坐标定位到(xTarget,yTarget)上,而(xTarget,yTarget)就是鼠标的当前坐标。修改这几行代码,就可以使物体在鼠标移动后,慢慢的靠近鼠标。_x=xTarget等价于_x=xTarget+_x-_x(加一个减一个)即:_x=_x+(xTarget-_x)其中的(xTarget-_x)是物体的目标位置与当前位置的坐标差如果让(xTarget-_x)乘上一个小于1的系数,那么物体就不会突然移动到坐标(xTarget,yTarget)上,而是
3、慢慢的靠过去。于是,修改后的代码如下:onClipEvent(enterFrame){xTarget=_root._xmouse;yTarget=_root._ymouse;fraction=0.5;_x=_x+(xTarget-_x)fraction;_y=_y+(yTarget-_y)fraction;}实现了慢慢靠近对“慢慢靠近”的加以利用:一个跟一个场景上放置一个影片剪辑,instancename命名为darg0在帧上添加代码:copies=5;for(vari=1;i=copies;i++){duplicateMovieCl
4、ip(drag0,drag+i,i);(drag+i).num=i;}上面的代码复制了5个,drag1~drag5,连同drag0,场景上共6个其中,还给drag1~drag5定义了内部变量drag1.num~drag5.num在场景上的drag0上面添加代码:onClipEvent(enterFrame){if(num){xTarget=(_root.drag+(num-1))._x;yTarget=(_root.drag+(num-1))._y;}else{xTarget=_root._xmouse;yTarget=_root._
5、ymouse;}fraction=.5;_x+=(xTarget-_x)fraction;_y+=(yTarget-_y)fraction;}这几行代码使得drag0跟随着鼠标,drag1跟随着drag0,drag2跟随着drag1,……,drag5跟随着drag4解释一下if这个判断语句因为drag1.num~drag5.num的值都不为空,所以对于drag1~drag5这5个影片剪辑,执行的代码是:xTarget=(_root.drag+(num-1))._x;yTarget=(_root.drag+(num-1))._y;也就是
6、跟随着前一个而对于drag0,由于没有给它定义num,它的值为空,所以对于drag0,执行的代码是:xTarget=_root._xmouse;yTarget=_root._ymouse;也就是跟随着鼠标“一个跟一个”代码的另一种写法上面的“一个跟一个”的制作,是在场景上只放置了一个影片剪辑,然后在影片剪辑上添加as代码,再通过在帧上添加as代码(duplicateMovie)来复制影片剪辑。还可以用另外一种代码方式来实现这种方式是直接在场景上放置了6个影片剪辑,依次命名为:drag0~drag5。然后在帧上添加代码如下:_root.
7、drag0._x=_root._xmouse+10;_root.drag0._y=_root._ymouse;i=1;while(i=5){dragi=(drag+i);dragi_prev=(drag+(i-1));dragi._x+=(dragi_prev._x-dragi._x)0.5+10;dragi._y+=(dragi_prev._y-dragi._y)0.5;i=i+1;}该代码也是使得drag0跟随着鼠标,drag1跟随着drag0,drag2跟随着drag1,……,drag5跟随着drag4(但是每个相差10)不过代
8、码添加完毕,测试的时候,你会发现这些影片剪辑并不会移动。因为还需要下面一个步骤:在时间轴的第二帧插入帧(F5),因为只有至少2帧,动画才会产生循环,上面那些代码也才会重复运行,否则如果只有1帧的话,那些代码也就只被执行了
此文档下载收益归作者所有