Flash变速滑动菜单剖析(2)
来源:中国艺术设计联盟作者:chila_blus发布时间:2005-01-02
实例实践:

  上面我们已经掌握了本例的基本实现思路。下面,我们就按着我们的思路,来一步一步地去实现这个菜单。

  step1:首先,我们需要制作我们所需要的元素。4个bTN,以及一个MC,把你所需要的栏目,做成BTN,然后制作一个跟随移动的MC。
  方法:点击菜单 插入(insert)>>新建元件(new symbol) 在名称(name)上填写名称btn_home。(起名字最好要有个规则,不然如果元件多了,看起来会很乱)

  (快捷键Ctrl+F8)确认行为选择为按钮。

  点击确认以后,便会进到这个元件的编辑界面。我们会看到这里面的编辑方式不一和主场景不一样,只有四个帧,这是因为这个元件的行为是按钮的原因。这四个帧分别为:up(弹起)、over(指针经过)、down(按下)、activ(点击)。分别代表鼠标不在按钮上,鼠标经过按钮(或者在按钮上停留时),鼠标点击时,最后一个是响应鼠标的区域。如果最后一层没有的话,就会以最上面一层的up(弹起)为活动区域。

  我们在图层1的up帧用文本工具写入HOME,这里颜色为#146270。然后在down(按下)帧,点鼠标右键,选择插入帧(insert frame)。这是为了保证在任何时候都显示home这几个文字。在属性面板中设置X和Y都为0;然后在新建一图层,将图层2拉到图层1下面,用矩形工具在图层2上画一个长方形。在属性面板设置宽为80,高为20,X和Y都为0;设置填充色为#56CCE0,无边框。然后在鼠标经过(OVER)上点鼠标右键选择插入关键帧(insert key frame)。将填充色改为#8ADCEA,然后在最后一帧上,即点击(activ)帧点鼠标右键,选择插入帧(这样是为了让我们的鼠标活动范围增大)。按照此方法,继续制作其它栏目的BTN,只有文字不同,其它地方方法一样。你也可以在库面板(窗口>>库,快捷键Ctrl+L、F11),选择建立的元件名,这里是btn_home,然后右击,选择复制,起一个新的好记的名称,然后再双击进入复制好的元件里,对文字进行编辑。把文字改为各个栏目的名称。

  将四个按钮制作完以后,再新建一个元件,名字为follow,行为为影片剪辑,同样用矩形工具画一个长方形,然后对它用渐变进行填充。高:6,宽:80,X:0,Y:0。

  step2:回到主场景,打开库面板,将我们的组件拉到主场景来,对它们的位置进行排列。

  把主场景的大小设为400X40,帧数为25帧,背景色为#006699。把四个按钮拉进主场景,将它们的Y坐标都设为20,X坐标分别为:40,122,204,286(这里可以自由设定)。为了直观,将该层改名为btns。

  新建一层,将follow影片也拉到主场景,X:40;Y:7,将该层改名为follow。

  给每个按钮、影片起实例名:先看一下下面的图片

  为home、about、news、links分别起实例名为btn_home,btn_about,btn_news、btn_links。给上面的跟随移动的MC,起名为follow。

  注意:这里的实例名和在库中的元件名是两回事。库中的元件名是为了我们能够在编辑的时候,可以很好的区分它们。不在同目录下的元件是可以重名的。而场景中的实例名,则是为了让我们在使用编写as程序的时候,利用实例名来分辨他们。

  再新建一层,起名为as,在下面键入如下代码。(附注释)

//这个符号是FLASH中的注释符
//设置两个变量,startX,endX,用来保存follow的运动起始点和结束点。即当前的followX坐标与我们所移动到的BTN的X坐标。这里仅起到初始化的作用。
startX = follow._x;
endX = 40;

//当鼠标移动到不同的按钮上时,follow的结束点X坐标是不同的。以下的语句是用来判断鼠标移动到哪一个按钮上了。
btn_home.onRollOver = function() {
     //设置当鼠标移动到不同的按钮上时,结束点的X坐标为当前鼠标所移动到的按钮的X坐标
     endX = this._x;
};
btn_about.onRollOver = function() {
     endX = this._x;
};
btn_news.onRollOver = function() {
     endX = this._x;
};
btn_links.onRollOver = function() {
     endX = this._x;
};

//这里的onEnterFrame是为了保证实时运行,即当播放到这一帧时,便持续播放。
follow.onEnterFrame = function() {
     //因为follow的X坐标是实时在变化的,因此,我们需要每次都取得它的X坐标。
     startX=follow._x;
     //moveX用来计算每回移动的距离。endX是所要移动到的按钮的X坐标。startX便是follow的当前X坐标了
     moveX=(endX-startX)/2;
     //重新设置follow的X坐标
     this._x=moveX+this._x;
};

  现在再确认一下你所键入的代码,并且确认实例名称已经设定,并且正确。就可以按Ctrl+Enter来预览一下了。 下载源文件

 

本篇编辑:chila_blus