|
按钮部分的制作
按钮的效果制作方法很多,这个网站上的按钮也是目前制作FLSAH按钮非常普遍的方法之一,我们来先看看图片。

当我们播放源文件的时候,会发现当我们鼠标移动到按钮上面时三角形符号会向前移动,当鼠标移开的时候,三角形符号会回到原来的位置。这种效果如何实现的呢?下面我们就来学习一下,我们可以看到整个按钮部分都在一个图层上,有人会问了,这么多的效果在一个图层上就能实现?(呵呵,没错的,这是我们常用的一种手法,利用影片剪辑进行嵌套,这样的做的好处是整个原文件层次划分非常清晰,让人一眼就能知道整个文件的构成)。
我们会发现整个按钮层就是个影片剪辑,双击后里面如图所示

很舒服吧,一目了然,每个图层对应一部分东西,5个按钮分别放置在5个图层上,
并且每个按钮又是一个影片剪辑,这时是我们应该就能体会到影片剪辑的能力吧。因为这5个按钮每个的制作过程都一样我们就挑一个来讲,比如是HOME这个按钮,我们点击它,恩,肯定是个影片剪辑了,然后打开动作面板,会发现几句AS语言 如下:
on (rollOver)
{
this.gotoAndPlay(2);
}
on (rollOut)
{
this.gotoAndPlay(11);
}
on (release)
{
_root.gotoAndStop(2);}
很简单吧,鼠标经过跳到第2桢,鼠标移开跳到第11桢,这两个是跳转播放是针对这个影片来说的,这点要知道,单击跳转到主场景的第2桢停止,这个是对场景而言的,_root就是场景的意思。
有人会问明明这个是按钮所允许的代码,为什么在影片上也行?呵呵,其实这个没什么影响,如果你认为不能理解的话,你就换成这种格式的this.onRollOver=function(){内容}
好了,知道了代码就要知道它们到底是干什么的,我们双击这个影片,打开如图

我们会发现这里面也很简单:三角形符号从1~10是向右做变色移动,从10~18是回到原来位置,其他内容都是静止的,然后我们来看看AS层分别在第1和第10桢上放了2个脚本,都是stop();这样是干什么呢?
想想我们上面我们看到的代码
on (rollOver)
{
this.gotoAndPlay(2);
}
on (rollOut)
{
this.gotoAndPlay(11);
}
呵呵,不难理解吧就是利用这些代码对三角形符号进行控制(需要注意的是明明是在第一和第10桢上有脚本,为什么我们需要跳转第2和第11桢呢?这是gotoAndPlay是一个很特别的语句, this.gotoAndPlay(2);虽然它是跳转到第2桢,但是它实际上是从前一桢开始播放,我以前就因为这个问题发生过错误)
好了,按钮部分到这里就说完了,不难吧~希望大家通过这个可以学会用影片剪辑嵌套的方式去做按钮。
3 画面的连接
今天我们就来说说有关这个网站画面是如何连接的,就主场景而言(也就是一打开文件所能看的画面),如图

当我们打开源文件的时候,我们可以看到主场景的所有画面都在上图当中这4个图层的第2桢上(这几个图层的位置做了些调整,方便大家看的清楚),分别是脚本层stop();第一部分,第二部分,第三部分(也就刚开始介绍网站准备工作中所划分的3个部分)OK,现在我们来一一介绍下,首先我们来介绍第2部分(因为动画是先播放第2部分的),它所在的图层是layer62,双击打开它,如图

呵呵,这里面全部都是补间动画构成,没什么好说的,参照源文件。。对于这个AS层的第37桢上有个脚本,打开动作面板,发现这些语句。
stop();
_root.cc.gotoAndPlay(2);
_root.cc.gotoAndPlay(2);这个的意思就是主场景下cc这个影片从第2桢开始播放。
cc??它在什么地方?呵呵,不要着急,请看下文,这样第2部分就讲完了,其实它是整个构成最简单的部分。
我们返回到主场景中开始说下第3部分,(因为它是第2个开始播放的),它所在的图层是在layer62上,点击后发现原来它是有实例名的,叫cc ,哦,它原来在这里啊。双击打开它如图所示

发现这里面和第2部分也差不多,对,就是很简单的构成,里面的按钮部分也已经提出来讲了,其他的也就是简单的补间了,好了,我们来看看AS层吧,发现在第一桢和第43桢上各有一个脚本
第一桢一个stop();这时有人就想问了,为什么在第2部分上我们没看到这个脚本啊,恩,能提出问题说明你动脑筋了,我们来说说原因吧(整个画面的播放顺序是第2部分——第3部分——第一部分,但是我们可以清楚看到这3个部分都是在一个桢上,照理说应该一起播放的,这时候简单的AS脚本就发挥了功效,首先我们先看到第2部分最后一桢上的_root.cc.gotoAndPlay(2);说明它播放过后才让第3部分开始播放,而第3部分开头的stop();也就是说,非要等到第2部分放完后,我才放,我们可以想一下,假如没有这个stop();那么将会在第2部分播放的同时,第3部分也在播放。这样就会发生错误,你不妨把这个stop();去掉,看看会发生什么效果。)
上一页 [1] [2] [3] 下一页
|