鼠标跟随怎样实现?

作者:闪吧   类型:原创   来源:闪吧

  

鼠标跟随怎样实现?
解决思路
简单的鼠标跟随我们可以通过flash as的startDrag来完成。今天我们介绍的这个事例,用到了复制,属性等命令。
事例分成两个部分,第一是索拖拽的对象。也就是我们要是什么物体跟随鼠标运动。第二是as部分代码的编写。
具体步骤
1,  打开flash mx,设置文档属性为黑色,帧频为30帧/秒。
2,  新建一个图形元件,命名为“蓝条”。在编辑区里面绘制一个如图1所示的图形。


图1   绘制元件
3,  新建一个影片剪辑,命名为“旋转”。从库中把制作好的“蓝条”图形元件拖放到影片剪辑的编辑区。利用对齐面板使之处与中央位置。在第15帧插入关键帧,设置第15帧里面的元件的透明度为0。在第1到第15帧之间创建移动渐变动画。如图2所示。


图2     影片剪辑“旋转”的时间线
4,  选中第1帧,在下面的属性面板中设置旋转参数。如图3所示。

 
图3     旋转参数设置
5, 再新建一个影片剪辑,命名为“拖动旋转”,按“ctrl+L”调出库面板,现在库中有三个元件。选中“旋转”影片剪辑将其拉到编辑区中心,在下面的属性面板中命名它的实例名为“xz”。然后将此图层命名为“旋转”。如图4所示。

 
图4  属性设置
6,  在时间线上选择第15帧,按F5将动画延长到第15帧。然后新建一个图层,
命名为as,在第1帧添加as:
startDrag("xz", true);     //开始拖动影片剪辑xz。
7, 回到主场景,在第2帧插入空白关键帧。打开库面板,把“拖动旋转”影片剪辑拖放到第2帧中的任意位置。将其实例名设置为movie。
8,  选中第2帧,打开as面板添加控制语句:
n = Number(n)+24;
if (Number(n)<360) {
       duplicateMovieClip("movie", "movie"add n, n);
setProperty("_root.movie"add n, _rotation, getProperty("movie",_rotation)-n);
gotoAndPlay(1);
}



n = Number(n)+24;     //n的数值每次递增24,  24是由360除以15得来的,由于
我们要设置旋转的动画,而每转一周是360度,动画片段的周期是15桢,所以要在一   个周期里旋转360度就要每桢旋转360/15=24°所以设置n的数值每次递增24。
if (Number(n)<360) {       //当n小于360时,
duplicateMovieClip("movie", "movie"add n, n);      //复制动画片段,并命名为movie
                                                以深度n复制。
setProperty("_root.movie"add n, _rotation, getProperty("movie",_rotation)-n);
//取得movie的旋转角度值,将其减去n,并将所得值设为目标_root.movie  add n的旋转角度值。
gotoAndPlay(1);                //跳到第1帧
}  
9,保存,测试。请参看源文件鼠标跟随.fla



特别说明


鼠标跟随效果是我们经常用到的效果,也是制作方法最多的一种效果。本例只向大家介绍了其中一种,利用这个原理我们还可以制作出很多类似的效果。其实结合本例来看,制作的结构非常的简单,创建一个原始旋转元件,然后在另一个影片剪辑中作鼠标托拽。放置到主场景以后,进行复制和属性设置。我们在学习一个实例效果以后,就要用这个方法来总结实例效果的结构,这对于我们以后flash的学习的帮助很大。

   责任编辑:kissall    时间:2005年8月29日