我们经常在精彩的Flash网站里看到神奇有趣的鼠标特效,如动画跟随鼠标移动,鼠标指针变换,动画或图片根据鼠标的位置移动变形等等,这些特效都是用Flash中的Action功能实现的,而Macromedia公司最新出品的Flash5软件更新的最多的功能也正是Action。这就实现了我们这些初级闪客更简单方便的做出Flash鼠标特效的梦想,也使高级闪客能做出更眩更酷的超级鼠标特效!好吧,闲话少说,现在就让我们打开Flash5,进入Action的世界吧!
首先,让我们对Action的使用有一个简单的了解。Action一般在两个地方存在,一是在按钮(Button)和影片剪辑(Movie Clip)中,二是在场景(Scene)或组件(Symbol)的帧(Frame)里,当我们在他们上面单击右键弹出菜单时就可以看到动作(action)这一项了。
在Flash5中,进入Action编辑窗口,在窗口左边是全部Action的列表,我们通过双击就可以添加Action了。点击窗口左上角的右箭头可以看到Action的编辑方式有两种模式:标准模式(Normal Mode)和专家模式(Expert Mode)。
Expert Mode是Flash5的一个新功能,能让熟悉Action的高级闪客更快捷的编辑Action的源代码 。我们一般选用Normal Mode,在这种方式下,当我们添加或者选中每一条Action,在窗口下面都会出现关于这条Action的参数选项。
为了熟悉Action操作,我们先做一个最简单的鼠标跟随例子,新建一个文件先做一个Movie Clip(注意:Button和Graphic是不能直接做鼠标跟随的,只能插在Movie Clip中才可以),然后把他托放到scene1中,用右键点击他,然后在弹出菜单中选择面板(Panel)>实例(Instance)
然后编辑scene1第一帧的Action,在左边的列表中选中Action> StartDrag,在参数目标(target)中填入场景中的Movie Clip的名称movie1,再选中复选框"锁定鼠标到中央"。
按Ctrl+Enter预览,这样一个最简单的鼠标跟随就做成了!怎么样,是不是非常的简单呀。
做完前面那个例子后,我们稍加改动,就可以做出自己定制鼠标指针的效果,先把刚才做的Movie Clip改成自己定制的鼠标指针动画,然后全部按上个例子做好,在第一帧的Action中选择列表中的对象>鼠标>hide。
不用加任何参数就完成了。
前一个例子中的鼠标指针只要Flash动画开始播放就变成自己定制的效果了,而我们在很多Flash网站中看到的效果并不是这样,而是当鼠标移动到按钮上或指定位置上才出现定制的效果,这又是怎样制做成的呢?通过学习制作这个效果,我们又能学到几条重要的Action。让我们再次打开刚才的例子,按Ctrl+L调出这个例子的符号库,然后按Ctrl+N新建一个文件,把刚才那个例子的符号库中的鼠标指针动画Movie Clip托放到场景中,但是位置要放在灰色的场景镜头以外区域,把它取名为newmouse(注意:这个名字不能改成mouse,否则在执行Action时会产生错误),然后按Ctrl+F8新建一个Button,把这个Button做好后,放到主场景的一个新的图层里,编辑它的Action,加入StartDrag,填入对象名称newmouse,选中复选框"锁定鼠标到中央",我们发现在StartDrag这行上面还有一条Action:"on (release) {",选中这条Action把下边的复选框中的释放(release)勾去,选中指针经过(rollOver)。
这样就把StartDrag的触发条件由鼠标指针释放时触发改为了鼠标指针经过时触发。按上个例子的方法在这个条件下加上Action:"Mouse.hide();"。选中此时的最后一行Action:"}",加入动作StopDrag,把触发条件改为指针离开(rollOut),在这个条件下在加入对象>鼠标>show,这时这个特效就基本完成了,但是我们预览时会发现一个问题,当我们把鼠标从按钮上移开时,刚才我们定制的鼠标指针动画并没有消失,而是停在了按钮的边缘上。
这就需要我们利用另外一个Action把这个鼠标指针动画从镜头里移开。我们再次编辑按钮的Action,在指针离开的触发条件下再加入另外一条Action:动作>setProperty,函数属性选择_x(X轴),目标填入newmouse,数值填入1000(你建的场景宽度不会比这个还大吧?)

这次再预览,怎么样,问题解决了!
这次我们要做点什么呢?还是鼠标跟随,但是这次这个鼠标跟随和我们讲的第一个例子有些不同。
现在我们就开始制作它!先制作一个Movie Clip动画,在最后一帧中编辑Action,加入Action>Stop,把它托放到场景中镜头外区域,取名为movie:,编辑第一帧的Action,这次我们按Ctrl+E选择专家模式(在熟练掌握Action后,这种方式更快捷),输入以下代码:
duplicateMovieClip ("/movie:", "movie:" add num, Number(num));
setProperty ("movie:" add num, _y, _ymouse);
setProperty ("movie:" add num, _x, _xmouse);
num = Number(num)+1;
if (num>10) {
num = 0;
}
然后按F6复制这个帧3次,编辑最后一帧的Action选择基本动作中的转到(gotoAndplay),保持默认参数,预览完成。让我们分析一下这段Action代码吧:
duplicateMovieClip ("/movie1", "movie1" add num, Number(num));
是复制场景中的对象movie1,把它的名字分别命名为"movie:"加变量num的形式,放在不同的深度;
setProperty ("movie:" add num, _y, _ymouse);
setProperty ("movie:" add num, _x, _xmouse);
这两句设定了新复制的Movie clip的横纵坐标为鼠标当前位置;
num = Number(num)+1;
变量num的累加不停复制Movie clip;
为了防止复制过多,导致资源过度占用,通过if (num>10) {num = 0;}控制Movie clip的最大复制数量。
怎么样,只要你稍懂一些编程知识,就能理解这些Action代码吧,如果你是编程高手,那你就可以利用不同的数学公式做出复杂的Action程序,从而实现惊人的特殊效果! 好了,鼠标特效特效我们就介绍这么多了,你是否对Flash5的Action有了一定的了解了呢?

