FLASH下载

设为首页
繁體中文
闪客留言

 首页 | FLASH动画 | FLASH专辑 | FLASH短片 | FLASH游戏 | FLASH歌曲 | FLASH教程 | Flash播放器代码
您当前的位置:flash下载 -> FLASH教程 -> AS教程 -> 文章内容  
栏目导航 相关文章
· FLASH基础 · FLASH实例教程
· FLASH技巧 · AS教程
·[组图]Flash MX一步步跟我...
·[组图]Flash遮罩特效实例-...
·[组图]Flash遮罩特效实例-...
·FLASH游戏制作精选实...
·[组图]用Flash打造迷你Win...
·[图文]Flash8 Blendmode—...
·Flash9.0播放器
·[图文]Flash 5 绘制螺旋图...
·[图文]Flash 5 精确下载制...
·[图文]用 Flash 5 编程制作...


FlashMX设计动物行为效果之蛇篇

作者:转载  来源:[闪客]  发布时间:2006-5-22 21:29:33  编辑人:[FLASH教程]

减小字体 增大字体


实例效果

  白白的纸上,一只金光闪闪的蛇在不停地游动,效果逼真。而且,我们可以控制蛇的节数的变化。制作中,大家要注意对编程技巧的研究。

设计步骤

  打开Flash MX。把场景设置成550 px×450 px,背景为白色,60 fps。

一、设计元件

1. 制作金蛇。

  按快捷键Ctrl+F8新建一个名为“snake”的影片剪辑。然后在影片剪辑符号“snake”第1帧的场景里制作一个蛇头,如图1,蛇头的长为18 px;高为12 px。

  注意:一定要如图1所示把场景的中心点放在蛇头的中心,防止蛇头和蛇身脱节。

  选中场景中的第2帧,按快捷键F7键新建一个空白关键帧,并如图片2所示制作一个蛇节。蛇节的长为6.5 px;高为6.5 px。然后分别在第35,70,100帧插入关键帧(按F6),并把相应帧里的蛇节大小改为(6 px,4 px)、(6 px,1.5 px)、(6 px,1 px)。分别选中第2,35,70帧,然后选择Tween下拉列表里的Shape命令。

2. 制作按钮。

  按快捷键Ctrl+F8新建一个按钮(根据个人爱好随意设计),写上“确定”二字。

3. 设计Action影片。(大家可以先跳过这段代码,看下面的步骤)

  按快捷键Ctrl+F8新建一个名为“action”的影片剪辑。在“action”的场景里右键单击第1帧,选择Actions命令,在弹出的Actions Frame面板里输入如下代码:

tellTarget ("_root") {//调用场景中所有的影片dx = getProperty("action", _x)-x1;//得到影片“action”在X轴方向上的位移dy = getProperty("action", _y)-y1;//得到影片“action”在Y轴方向上的位移point = Number(point)+1;//蛇的节数加1    if (Number(point)>Number(snake)) {   point = 0;}//当蛇的节数增加到默认值时,就把它重置为0,不让这只蛇无限变长duplicateMovieClip("head", "head" add point, point);//复制“snake”影片,使蛇的节数不断增加x1 = getProperty("action", _x);//把影片“action”的x轴坐标赋值给变量x1y1 = getProperty("action", _y);//把影片“action”的y轴坐标赋值给变量y1setProperty("head" add point, _x, x1);//把变量x1的值赋值给影片“head”setProperty("head" add point, _y, y1);//把变量y1的值赋值给影片“head”//以上代码实现了蛇的运动//以下代码实现了蛇节角度的变化,从而使效果逼真if (Number(dx) == 0) {   ror = 90;//如果影片“action”在的坐标在x轴方向没有变化,则让影片“snake”的角度为90度。其实这也很好理解,因为蛇的头和节都是水平方向设计的,如果影片“snake”的x轴坐标不变,说明蛇在做垂直运动,“ror = 90;”就是让蛇的角度也变垂直。//ror就是控制蛇节角度的变量    } else {        x = dy/dx;//这个x就是角度的正切值,大家只要画一个简单的示意图就明白了    if (Number(x)<0.99 and Number(x)>Number(-0.99)) {//如果角度值在(-1,1)之间就执行下面的语句ror = x*40;//本来应该用泰勒展开式计算这个角度值的,但考虑到可能有些朋友不会,所以就简单让它乘以40(也可以不乘),可是这样做蛇就不那么光滑了。还好,颜色可以帮忙,而且这条蛇也不是很大。^o^        } else if (Number(x) == 1) {//很容易理解,如果角度值恒等于1就设角度为45度ror = 45;//由于篇幅原因,下面的语句我就不详细讲了,功能同上       } else if (Number(x) == -1) {          ror = -45;   } else if (Number(x)>1.01) {          ror = 90-1/x*50;   } else {          ror = -90-1/x*50;   }}if (Number(dx)<0) {   ror = ror-180;}setProperty("head" add point, _rotation, ror);}

4. 接着,在第2帧中输入如下代码:

gotoAndPlay(1); //构造回路

二、设计场景

1. 回到主场景,双击Layer 1层,改名为“actions”。按快捷键Ctrl+L打开库,把影片“action”拖拽到该层中,这时我们会发现场景中多了一个白色的小圆圈。为影片“action”起个实体名为action,如图3。接着我们选中第300,550,800帧按下F6键。右键单击第1,300,550帧,选择Create Motion Tween命令。

2. 在“actions”层中右键单击第1帧,输入如下代码:

point = 0; //初始化影片复制的参数为0
snake = 50; //默认蛇的长度为50节
mpoints = snake; //初始化输入文本框的值为50

右键单击第800帧,输入如下初始化代码:

gotoAndPlay(2);

3. 单击Timeline面板里的 按钮新增一个引导层。在该层里画一条好似汽车赛道的曲线。单击snap to object按钮打开吸附功能,然后把“actions”层中各关键帧中的影片剪辑符号“action”吸附在曲线上,位置如图4所示。

  注意:第1和第800帧的位置要错开一些,以保证蛇游动的流畅性。

4. 新建一层,命名为“Text”。在“Text”层里写下“请输入蛇的节数:”几个字,如图5,然后用Text工具在这几个字的右边拉出一个文本框。接着如图6设置这个文本框。这样,我们就把这个文本框设置成一个可输入变量的文本框,并把输入的变量起名为“mpoints”,借此来实现对蛇节数的控制。

5. 把影片“snake”拖拽到场景中,给它起个实体名为head。

6. 再新建一个“button”层。把你设计的那个“确定”按钮拖放到如图5所示的位置。右键单击这个按钮,输入如下代码:

//当“确定”按钮被按下的时候,删除原有的影片on (release) {point = 0;    while (Number(point)<Number(Number(snake)+1)) {     removeMovieClip("head" add point); point = Number(point)+1;}//把输入进文本框的变量值赋给snake,使蛇长变为用户所设置的值snake = mpoints;    point = 0;//该语句的作用是让影片从0从新开始复制}

 

  效果到这里就完成了。希望大家这个例子能给大家什么启发。譬如用该例的方法结合影片复制函数实现一群蝌蚪的不规则游动。至于具体的实现方法就留给大家自己思考吧。

我的工作QQ是:3549101。
E-mial:pccgl@sina.com。
源文件下载:http://vip.5dmedia.com/skyleaf/snake.fla。
本例效果:http://vip.5dmedia.com/skyleaf/snake.swf。

文/图 柳叶吹风

(完)

[] [返回上一页] [打 印]
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [查看评论>>>]