搜狐首页 - 新闻 - 体育 - 娱乐 - 财经 - IT - 汽车 - 房产 - 女人 - 短信 - 彩信 - 校友录 - 邮件 - 搜索 - BBS - 搜狗 
搜狐首页 >> IT频道_搜狐网站 >> 数码天下 >> 网狐教程-搜狐IT >> 网站制作-网狐教程-搜狐IT >> Flash
Flash实例教程——鱼戏莲叶间
IT.SOHU.COM  2004-07-19 11:17  作者: 闪灵凶猛 
页面功能 【我来说两句】【我要“揪”错】【推荐】【字体: 】【打印】 【关闭

鱼戏莲叶间(如图1所示)是一个将鼠标跟随效果应用得非常巧妙的例子。该动画中,一条可爱的鱼儿在莲叶间畅游。最吸引人的是,这条鱼儿会紧紧跟随着您的鼠标,并且在转身回头之间,鱼头、鱼身以及鱼尾之间的运动显得非常连贯。一般的鼠标跟随效果往往只应用了简单的跟随,实际上就是ActionScript的简单调用。本例将告诉您如何在脚本程序的基础上加入一些技巧,使做出来的效果更富情趣,更惹人眼球。本例在帧上下的功夫并不多,关键的地方在影片剪辑元件的调用和安排上。学完本实例,不但可以掌握如何制作鼠标跟随效果,而且对动画创作的技巧会有一个新的认识。

按此在新窗口浏览图片
1 “鱼戏莲叶间”效果图
软件知识点

: 影片剪辑元件的链接

: attachMovie 语句

: with语句

: duplicateMovieClip语句

: startDrag语句

实例分析

在制作“鱼戏莲叶间”之前,让我们来对实例进行一些分析,以便理清思路,对全局有一个系统的把握

制作特点

本任务主要有以下特点:

1)要做的鱼其实只有鱼头、带鳍的鱼身和不再鳍的鱼身3个元件,整条鱼是通过脚本程序组合起来的。在鱼和莲叶的布置上都要用到深度级别(level)的概念。

2)鼠标跟随效果实际上是使对象位置随鼠标的运动而不断变化,这样的效果很容易就做出来了。但是要将鼠标跟随效果做到出神入化,往往需要进行一些技巧性的计算。本例的技巧重点在于对鱼的各部分的运动速度和方向的控制。

创意分析

鼠标跟随属于交互式动画的一种。在Flash里,用鼠标可以控制您想控制的任何东西。但是要使这种人为的操纵不那么生硬,就得照顾到所操纵对象的每一个细节。

本例将一条鱼拆分成若干节,首先从头至尾对每一节的大小和透明度作一个递减,这样,一条头粗尾细真实感很强的鱼就做出来了。在控制鱼的运动时,每一节的速度也有一个从快到慢的变化,使游动的鱼有一定的伸缩度,这样才能体现出鱼的灵活性。另一个环节是随着鼠标的运动,鱼的游动方向会产生剧烈的变化。如果不对每一节的旋转方向作一个比较精确的调整,鱼身的错位就会非常惊人。本例使用的方法是使鱼在游动时身体的每一节都旋转到前面一节在上一时刻的方向,这样鱼不再完全受鼠标的指使,而会跟随自身的角度产生渐变。另外,在做鱼鳍时让它附带一段改变透明度的渐变动画,使鱼更具真实感。

向场景中添加莲叶有3种方法:

【方法1

直接将其拖到场景中,这样会使游动的鱼浮于它的上层,显然不是我们所要的效果。

【方法2

将其拖到场景中,并用duplicateMovieClip方法调整其层级,使其浮于鱼的上层。这是本例用到的方法。

【方法3

不将其拖到场景中,而在库中为其添加链接,使用attachMovie方法将其调用到场景中,但需要为其设置位置参数,否则它将出现在播放窗口的左上角,也就是窗口坐标中的原点位置。

技术要领

制作Flash动画“鱼戏莲叶间”的技术要领主要在于几个ActionScript命令的应用。本例用到的ActionScript命令主要有

1.attachMovieidName, newName, depth

从库中取一个为动作脚本设置了链接的元件并将其附加到场景中。idName是库中要附加到舞台上的影片剪辑元件的链接名称,也就是在“链接属性”对话框中的“标识符”字段中输入的名称。newName是为使用该命令附加到场景中的影片剪辑实例指定的唯一名称。depth一个整数,用来指定影片剪辑所放位置的深度级别,这个深度级别(level)是在动画播放时由Flash分配的,它与层(layer)的概念类似但又有所区别。每个深度级别只能容纳一个影片剪辑实例,如果为同一级别附加新的实例,旧实例将自动消失。表示深度级别的整数越大,相当于显示的层越贴近我们的视线。

本例用到的鱼头、鱼身事先并不从库拖入到场景中,而是使用attachMovie命令在动画播放时从库中调用,并利用depth属性将它们的层级区分开来。

使用removeMovieClip unloadMovie 命令可以删除用 attachMovie 附加的影片剪辑实例。

2.myMovieClip.duplicateMovieClip(newName, depth)

在影片播放时创建指定影片剪辑myMovieClip的实例,用newName指定实例的唯一名称,用depth指定实例的深度级别。duplicateMovieClipattachMovie方法有些类似,但是duplicateMovieClip是复制已经添加到场景中的剪辑,而不是从库中调用。如果删除了场景中用作调用的父影片剪辑,所有用该方法复制出的实例都将一同被删除。

本实例中的莲叶便是用duplicateMovieClip命令添加的。看完本实例后有读者可能会问,场景中已经有莲叶的影片剪辑实例了,为什么还要用duplicateMovieClip命令将其复制一遍,这个操作是否多余?原因在于duplicateMovieClip命令指定了莲叶的深度级别,否则它们将默认显示在最低级别,那样的话,就不是鱼戏莲叶间,而是鱼戏莲叶上了。

duplicateMovieClip添加的影片剪辑可以用 removeMovieClip方法删除。

3.with(object){

statement(s);

}

使用object参数指定一个对象(比如影片剪辑),并使用 statement(s) 参数计算对象中的表达式和动作,为对象设置属性。使用with语句可以避免重复书写对象的名称或路径。

在为鱼的各节设置属性时使用该语句以简化脚本程序。

[1] [2] [3] [4下一页 
页面功能 【我来说两句】【我要“揪”错】【推荐】【字体: 】【打印】 【关闭




ChinaRen - 搜狐招聘 - 网站登录 - 帮助中心 - 设置首页 - 广告服务 - 联系方式 - 保护隐私权 - About SOHU - 公司介绍
Copyright © 2005 Sohu.com Inc. All rights reserved. 搜狐公司 版权所有

相关链接
  • Flash实例教程——鱼戏莲叶间(07/19 11:21)
  • Flash实例教程——鱼戏莲叶间(07/19 11:21)
  • Flash实例教程——鱼戏莲叶间(07/19 11:21)
  • 喜欢她 用好她——用A4Desk制作Flash网站(07/19 10:51)
  • 用Flash MX制作堆雪效果(07/16 15:18)
  • Flash精彩实例:CS枪战游戏基础制作(07/12 10:24)
  • 夏日凉风:用Flash制作一个风扇(07/09 09:26)

  •  ■ 我来说两句
    用  户:        匿名发出:
    请各位遵纪守法并注意语言文明。
     
    *经营许可证编号:京ICP00000008号
    *《互联网电子公告服务管理规定》
    *《全国人大常委会关于维护互联网安全的规定》
    短信内容:
    手 机
    自写包月5分钱/条 更多>>
    搜狐天气为你抢先报! 魔力占卜姻缘一线牵!
    金币不是赚的是抢的! 爱情玄机任由你游戏!
    猪八戒这样泡到紫霞! 帅哥一定要看的宝典!
    你受哪颗星星的庇护? 萨达姆最新关押照片!
    精彩彩信
    [和弦]欧若拉 一生有你
    沧海一声笑
    [音效]挪威的森林
    爆铃 MP3 G点图 动画
    [和弦]童话 你到底爱谁
    [原唱]一千年以后 断点
    [爆笑音效]赚钱拉 野花
    [串烧]张韶涵 潘玮柏
    精彩短信
    [和弦]小薇 好心分手
    [音效]当当当当 忘记


    搜狐商城
    ·家电|品牌风扇新品热销
    ·音乐|秦海璐幸福回味
    ·图书|《眼镜蛇事件》
    更多...