快速业务通道

用Flash制作飞鸟跟随动画

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-10

? Flash动画中有的效果完全可以由代码控制并生成图像完成,譬如本文所要实现的效果就是通过一段并不复杂代码把两条线段变成一群活灵活现的飞鸟。再加上一幅图片,绝对能让你想起“千山鸟飞绝”的诗句,见效果图所示。

效果图

1.新建一个Flash文档,单击“属性”面板中的“尺寸”按钮,打开“文档属性”面板设置场景大小为350px x 300px,帧频为20fps。
2.按快捷键Ctrl+F8新建一个名为“图片”的影片剪辑元件。按快捷键Ctrl+R打开“导入”面板导入一幅可以覆盖场景的山水图片,见效果图。

1

3.按快捷键Ctrl+L打开“库”面板,把“图片”元件拖拽到“场景1”中。点选场景中的“图片”元件,按快捷键Ctrl+K打开“对齐”面板,点击“相对于舞台”按钮,再点击“左对齐”和“上对齐”按钮。这样很容易就使“图片”元件覆盖住整个场景了。

2

4.创建一个“飞鸟”影片剪辑元件。该元件的图层设置如图2所示。“左翅”层和“右翅”层利用“形状渐变”运动让两条线段可以模拟鸟翅膀煽动的运动。打开“洋葱皮”命令可以很清楚的看到了,如图3所示。在各帧中,线段只是角度不一样,以产生运动的效果。设置线段角度的变化可以按快捷键Ctrl+T打开“变形”面板进行辅助设置。 3? 图4 ? ? [1]?[2]?[3]?下一页?? ? 5.按快捷键Ctrl+L打开“库”面板。右键点击“库”中的“飞鸟”元件,单击“链接”命令打开“链接属性”面板,如图4所示,并如图5所示设置。使用“链接属性”面板定义影片剪辑元件后,可以直接利用代码调用元件,而不必把元件拖拽到场景中。 ? 图5

6.回到“场景1”,点选“图层 1”的第1帧,按F9键打开“动作”面板,输入如下代码: // 飞鸟动画 damp = .95; numbirds = 30; for (i=0; i bird = attachMovie("bird", "bird"+i, i); bird._x = Math.random()*350+20; bird._y = Math.random()*300+20; bird.vx = Math.random()*10-5; bird.vy = Math.random()*10-5; bird.k = Math.random()*.0001+.0003; bird.gotoAndPlay(Math.round(Math.random()*20)); } onEnterFrame = function () { var totx = 0; var toty = 0; for (i=0; i bird = _root["bird"+i]; totx += bird._x; toty += bird._y; } avgx = totx/numbirds; avgy = toty/numbirds; for (i=0; i bird = _root["bird"+i]; bird.vx += (avgx-bird._x)*bird.k; bird.vy += (avgy-bird._y)*bird.k; bird.vx += Math.random()-.5; bird.vy += Math.random()-.5; bird.vx *= damp; bird.vy *= damp; targAngle = Math.atan2(bird.vy, bird.vx)*180/Math.PI; diff = targAngle-bird._rotation; if (diff<-180) { ???? diff += 360; } if (diff>180) { ???? diff -= 360; } bird._rotation += diff*.2; bird._x += bird.vx; bird._y += bird.vy; } } 7.为了使该动画更有趣些,我们在以上的代码下,再添加如下代码: // 鼠标动作 function drawToPoint(){ for(i=0;i bird=_root["bird"+i]; bird.vx+=(_xmouse-bird._x)*bird.k*100; bird.vy+=(_ymouse-bird._y)*bird.k*100; } } onMouseDown = drawToPoint;
添加这段代码后,按快捷键Ctrl+Enter测试。当鼠标点击动画,所有的“鸟儿”就会向鼠标点击的方向飞去,很酷。整个效果到这里就全部设计好了。
  该效果源件下载(27.5K)   点击最后一页预览效果 上一页??[1]?[2]?[3]?下一页?? 上一页??[1]?[2]?[3]? 关键词:动画

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号