鼠标效果系列教程—游动的鱼

| 网站首页 | 电子厨务 | 饮食信息 | 电子图库 | 厨客留言 | 520吃论坛 |

| 加入收藏
| 设为首页
| 联系站长

| 您现在的位置： 520吃 >> 电子厨务 >> 电脑基础 >> 动画制作 >> 文章正文

鼠标效果系列教程—游动的鱼 | 荐 ★★★ | 【字体：小 大】

鼠标效果系列教程—游动的鱼
作者：佚名 文章来源：本站原创 点击数： 更新时间：2006-9-6

打开Flash MX，建立影片，设置好场景大小、背景颜色和帧频。

鱼的制作
我们把鱼分成三个部分来制作：鱼头、鱼鳍和鱼身。
先来制作鱼头。新建个影片剪辑叫“鱼头”。如果对话框的扩展面板没打开，点击“高级选项”按钮打开它。在“链接”的选项中，勾选“为动作脚本导出”，在“标识符”一栏中，会自动出现“鱼头”这个名称。为了让大家分清楚影片剪辑在库中的名称和它的标识符的区别，我们把它改为“head”。注意，这个head就是影片剪辑“鱼头”的idName。将来我们用attachMovie语句从库中调用“鱼头”时，就要用到它。

进入符号编辑区，使用绘图工具绘制一个鱼头，可以使用椭圆工具先绘制一个椭圆，然后使用箭头工具对其进行调整，最后再用椭圆工具绘制两个眼睛。

提示：使用箭头工具指向打散图形的边缘，当箭头尾部出现一个小圆弧时，按住鼠标左键拖动，就可以编辑图形的形状了。
鱼头做好后，接下来制作鱼身。新建个影片剪辑名为“鱼身”。绘制出如下形状并设定一个渐变色填充。

我们也要给它设定一个idName。在库中右键点击鱼身符号，在弹出菜单中选“链接…”。接着在弹出的链接属性对话框中，在标识符栏里填入“body”。

最后来制作鱼鳍。再新建个影片剪辑叫鱼鳍，idName为“fin”。进入编辑区，在第一帧绘制出鱼鳍的形状。

好，鱼儿三部分的制作就完成了。下面就是动作脚本的编写了。
在场景的第1帧，加入如下动作：
// 初始化鱼儿
N = 20; //鱼的长度
for (i=1; i<N; i++) {
if (i == 1) { //第1节是鱼头
attachMovie("head", "Pieza"+i, (N+1)-i);
} else if ((i == 4) || (i == 14)) { //第4和14节是2个鱼鳍
attachMovie("fin", "Pieza"+i, (N+1)-i);
} else { //其它的都是鱼身
attachMovie("body", "Pieza"+i, (N+1)-i);
}
//设置大小和透明度
this["Pieza"+i]._xscale = 100-3*i;
this["Pieza"+i]._yscale = 100-3*i;
this["Pieza"+i]._alpha = 100-((100/N)*i);
}
这里介绍一下attachMovie的用法：
myMovieClip.attachMovie( idName, newName, depth [, initObject] )
参数
idName 库中要附加到舞台上某影片剪辑的影片剪辑元件的链接名称。这个我们在前面已经反复强调了，相信大家还没忘吧？要把它和库中显示的元件名区别开，元件名只是个记号，编程时是用不到的。
newname 附加到该影片剪辑的影片剪辑实例的唯一名称。
depth 一个整数，指定影片所放位置的深度级别。
initObject 一个包含属性的对象，这些属性可用于填充新附加的影片剪辑。此参数使动态创建的影片剪辑能够接收剪辑参数。如果 initObject 不是对象，则将被忽略。initObject 的所有属性都会被拷贝到新实例中。构造函数可使用由 initObject 指定的属性。此参数是可选的，我们这里用不到它。
返回
无。
说明
方法；从库中取一个元件并将其附加到舞台上由 MovieClip 指定的影片中。使用 removeMovieClip 或 unloadMovie 动作或方法可删除用 attachMovie 附加的影片。

第2帧的动作脚本：
//此帧控制鱼的移动
R = 12; //调节移动速度的参数
//控制鱼头跟随鼠标移动
Pieza1._x+=(_xmouse-Pieza1._x)/R;
Pieza1._y+=(_ymouse-Pieza1._y)/R;
//控制鱼头转向鼠标的方向
Pieza1._rotation = 57.29578*Math.atan2(_ymouse-Pieza1._y,_xmouse-Pieza1._x);
//控制鱼身跟随鱼头
for (i=2; i<N; i++) {
this["Pieza"+i]._x+=(this["Pieza"+(i-1)]._x-this["Pieza"+i]._x)/2;
this["Pieza"+i]._y+=(this["Pieza"+(i-1)]._y-this["Pieza"+i]._y)/2;
this["Pieza"+i]._rotation=57.29578*Math.atan2(this["Pieza"+(i-1)]._y-this["Pieza"+i]._y,this["Pieza"+(i-1)]._x-this["Pieza"+i]._x);
}

关于跟随的语句，不用多作解释了吧。不过有的朋友可能对“+=”这个操作符不太熟悉。“A+=B”表示什么呢？它其实就等价于“A=A+B”。同理，“A-=B”就相当于“A=A-B”。
控制鱼的转向时，用到了一个数学对象：Math.atan2()。看一下它的用法：
Math.atan2(y, x)
参数
x 一个数字，指定点的 x 坐标。
y 一个数字，指定点的 y 坐标。
返回
一个数字。
说明
方法；以弧度为单位计算并返回 y/x 的反正切值。返回值表示相对直角三角形对角的角，其中 x 是临边边长，而 y 是对边边长。
简单的说，就是根据点的坐标来求角。但它返回的是个弧度值，我们还要把它转变成度数才能用到_rotation属性中。用下面这个公式来计算：
度数=弧度*180/3.14159265=弧度*57.29578

第3帧的action只有一句：
gotoAndPlay(2);

返回第2帧，做成一个循环，使鱼儿不停游动。
好，本例的制作就完成了。通过这一节的学习，我们又掌握了几个知识点：
一、 idName的设置。可以在创建符号时就设好，也可以给做好的符号添加。
二、 attachMovie的用法。
三、 利用两点坐标求角度：Math.atan2(y2-y1,x2-x1) 注意是y在前面哟。

最新热点

最新推荐

相关文章

Flash MX制作堆雪效果
PowerPoint中插入Flash动画的
FLASH MX制作动画卡通人物
FLASH《一树梨花》旋转特效
Flash实例之电子日历
带进度条的Loading制作
FLASH弹出窗口
实用的Flash技巧心得
FLASH动画 命令大集合
Flash MX的10个新功能

文章录入：admin 责任编辑：admin

- 上一篇文章： 带进度条的Loading制作
- 下一篇文章： Flash实例之电子日历

【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】

网友评论：（只显示最新10条。评论内容只代表网友观点，与本站立场无关！）

服务热线:(0)15972979128 客服ＱＱ：２１４８８１３９ Email:summy@520chi.com

设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告
Copyright (C) 2006 520chi.com, All Rights Reserved 版权所有 520吃网络 鄂ICP证B2-20060003号 如有意见请与我们联系 Powered by 520吃网络平台 免责申明：520吃网络(http://520chi.com)上的所有提供下载的软件和资源均来源于网络，为软件或程序作者提供和网友推荐收集整理而来，仅供学习和研究使用。如有侵犯你的版权，请立即联系我们，本站将在3个工作日内删除。