让运动更流畅、更优雅、更丰富——雅酷互动flash as2简易教程第3篇

现在大家应该都会使用AS程序让影片剪辑动起来了。但是你按照我教你的方法做来做去,一定做得很郁闷,为什么呢?别人的FLASH看起来又流畅,又优雅,又漂亮,动起来那个好看啊,可是我的FLASH为什么动起来直不楞登的,活像机器人呢?算了,算了,别郁闷了,我还是告诉你吧,虽然咱们现在已经学会了用程序使FLASH动起来,但这只是FLASH程序动画得罪最基础的皮毛而已,就像刚刚学会走路的小孩,你还指望他能跳芭蕾?要使动画能够流畅、优雅的动起来,你还得埋头苦学才成。

优秀的FLASH动画中,影片剪辑的移动为什么看起来更流畅呢?因为它更符合生活中的运动规律,说白了两个字——缓冲。想一想汽车是怎么停下来的,速度逐渐减慢,然后停下来。任何事物在改变运动状态的时候,都是逐渐加速或者逐渐减速的,所以,要想你的动画看起来好看,你必须让动画学会缓冲才行。

先从减速运动开始。

何谓匀速运动?何为减速运动?

匀速运动,物理上来讲,就是单位时间内物体位移的值相等。

而在flash里来说的话,就是每一帧里,影片剪辑的某一个属性值变化的幅度相等。拿上一次提到的代码来看:

myMc._x=0;

onEnterFrame=function(){

myMc._x += 1;

}

可以看到,在每一帧里,影片剪辑的x轴坐标增加了1,如果你觉得他慢吞吞得很不来劲,可以把这个值改大点,比如说改成10,

myMc._x=0;

onEnterFrame=function(){

myMc._x += 10;

}

运动速度果然快了很多,但是很抱歉,好像还是匀速的。

所以,如果每帧中的数值保持不变,运动一定是匀速的。

那么什么是减速运动呢?

物理上来讲,就是单位时间内物体位移的值逐渐减小,最后变成零,物体就停下来了。

所以,说到这里,冰雪聪明的你一定迫不及待的要举手发言了。

对了,所谓减速运动,在flash里,实现的方法就是让这个值逐渐减小,最后变成零就行了。

到了这里,我们可以隆重推出我们的减速运动的公式了,看仔细了

如果你希望影片剪辑逐渐减速,到x轴坐标为500的时候停下来,那么,这样来写:

myMc._x=0;

onEnterFrame=function(){

myMc._x += (500-myMc._x)/10;

}

看明白了吗?没看明白得让你的大脑充分转动起来,想一想(500-myMc._x)/10是如何越变越小的。

-

好了,到这儿你是不是想明白了?

什么?还没有想明白,那就看下面的说明吧,想明白了的人,下面一段可以华丽的掠过了。

(500-myMc._x)/10中,10这个数字是可以随便写的,只要是正整数就行,当然写不同的数值,缓动的效果不一样。好奇的同学可以自己试一下。

我们来把循环分解,看一下这个值是如何逐步变小的。

myMc._x的初始值是1,所以,第一次循环时,括号中的数字是500,500/10,得到50,然后把50赋给myMc._x,也就是说第一帧中,myMc向右侧移动了50个像素,同时在第二次循环开始时,变成了50,这样,括号里(500-myMc._x)的值就变成了450,450/10是45,依次计算下去,你会发现这个值逐渐减小了。所以,mc的运动速度就逐渐减慢了,直到它越来越接近目标点500,这个值就越来越小,最后无限趋近于零,运动就停下来了。

这就是缓动的减速运动原理。

用上这个东西以后,再去看看你的动画,是不是好看多了。

其实加速运动是一样的,这里就不讲了,自己琢磨一下吧。

当然,还有一个事情需要提醒一下,就是上次我们提到的,在onEnterFrame停止的时候,一定要记得清除掉循环,避免一直占用CPU资源。

myMc._x=0;

onEnterFrame=function(){

myMc._x += (500-myMc._x)/10;

if(Math.abs(500-myMc._x)<0.5){

delete this.onEnterFrame;

myMc._x=500;

}

}

Math.abs是对括号里的数字取绝对值,因为500-myMc._x永远不可能达到零,所以,我们只能取一个极为接近0的数字,比如说0.5,基本上从视觉上已经看不出它的位置上差别。所以,这个时候我们把循环清除掉,并且直接赋值给myMc._x就可以了。

这就是所谓的缓冲运动,当然在实际的flash里还有很多更复杂的运动形式,比如说钟摆式的运动,回弹运动等等,里边的有些运动方式,flash里提供一些现成的类可以方便地实现效果。关于这些缓动类的使用,我们下次再谈。

有问题的可以到我的博客(http://www.cnblogs.com/nethinks)或者加QQ群(46428099)进行交流。

posted on 2009-02-18 17:54 立方光年 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/nethinks/archive/2009/02/18/1393377.html

让运动更流畅、更优雅、更丰富——雅酷互动flash as2简易教程第3篇相关推荐

  1. 懒人自有懒办法——雅酷互动flash as2简易教程第4篇

    懒人自有懒办法--雅酷互动flash as2简易教程第4篇 据说,这世界是由懒人创造的.因为实在懒得不愿走路,所以,我们发明了汽车,因为实在懒得不愿意提东西,所以我们发明了起重机:因为实在懒得不愿意计 ...

  2. 雅酷互动flash as2简易教程第3篇

    现在大家应该都会使用 AS程序让影片剪辑动起来了.但是你按照我教你的方法做来做去,一定做得很郁闷,为什么呢?别人的 FLASH看起来又流畅,又优雅,又漂亮,动起来那个好看啊,可是我的 FLASH为什么 ...

  3. 雅酷互动flash as2简易教程第4篇

    据说,这世界是由懒人创造的.因为实在懒得不愿走路,所以,我们发明了汽车,因为实在懒得不愿意提东西,所以我们发明了起重机:因为实在懒得不愿意计算,所以,才有了计算机,实在懒得不愿意写汇编语言,懒人才去发 ...

  4. 玩的就是影片剪辑-雅酷flash as2简易教程第1篇

    玩的就是影片剪辑-雅酷flash as2简易教程第1篇 上一篇教程出来以后,很多网友留言,问我为什么不直接讲as3,而是很过时的唠叨as2,这里首先澄清一下,as3是一个好东西,本博客并非要视as3为 ...

  5. 雅酷FLASH AS2简易教程第0篇

    [url=javascript:void(0);/*1251087455109*/]雅酷FLASH AS2简易教程第0篇[/url] [url=http://www.5uflash.com/flash ...

  6. 影片剪辑动起来-雅酷互动flash简易教程第2篇

    影片剪辑动起来-雅酷互动flash简易教程第2篇 在百度看到有网友留言说更新太慢,在这里向大家先说声抱歉,因为年底事情比较多,所以很难静下来写第三篇,但是,以后我会尽量以每周一篇的速度进行更新,如果有 ...

  7. 一加5手机刷Android8,更流畅更安全 一加5和一加5T 获安卓8.0更新

    原标题:更流畅更安全 一加5和一加5T 获安卓8.0更新 近日,一加为旗下的一加5和一加5T两款旗舰的氢OS系统推送了安卓8.0版本的系统更新,这是继一加3/3T之后,一加又一次对旗下机型的系统进行的 ...

  8. Cocos游戏引擎3D特效全新升级 更流畅更炫酷

    好莱坞大片一度是各大院线叫座又叫好的劲爆卖点,其炫酷劲爽的影视特效是尤为重要的一个因素.对于手游来说,精细流畅而又动感十足的特效亦是如此.Cocos 2d-x 3.x从3.4 beta0版本开始开启了 ...

  9. 现代战争4 android8.0,《现代战争4:决战时刻》最新版1.0.5发布 更流畅更爽快

    游戏简介 <现代战争4:决战时刻 Modern Combat 4: Zero Hour>是<现代战争>系列的最新作品,这款游戏成功地延续了前作的优点,既有紧张刺激的单人战役也有 ...

最新文章

  1. tensorflow-Inception-v3模型训练自己的数据代码示例
  2. 对Python匿名函数和@property小小理解,希望对你学习也有帮助
  3. 发力公有云的用友YonSuite,云原生实力到底如何?
  4. 重复文件查找_Duplicate File Remover PRO for mac(Mac文件重复查找软件)
  5. [置顶]       ibatis框架----控制台输出SQL语句
  6. 【一天一个C++小知识】010.malloc/free和new/delete
  7. 三角波fft的c语言程序设计,dsp的fft实现设计报告.docx
  8. Java使用iText PDF导出PDF文档
  9. 无源滤波器和有源滤波器有什么区别?-道合顺大数据infinigo
  10. ODM/OEM/OBM区分
  11. Bart模型应用实例及解析(一)————基于波士顿房价数据集的回归模型
  12. mac时间机器文件服务器,Mac小技巧:时间机器的使用方法和细节
  13. Python爬虫之urllib.request的使用
  14. SQLite julianday DateTime日期时区问题小记录
  15. 移动端页面一键拨号、发送短信等功能
  16. 数据库周刊28│开发者最喜爱的数据库是什么?阿里云脱口秀聊程序员转型;MySQL update误操作;PG流复制踩坑;PG异机归档;MySQL架构选型;Oracle技能表……
  17. TRIZ理论学习的思考(续)
  18. vue中使用v-html防止xss注入
  19. JAVA异常处理(三种异常处理机制)
  20. Unity技术面试题

热门文章

  1. 撤销还是注销,你分得清吗?
  2. 苹果cms V10模板 pc端绿色大气电影模板
  3. 2022“杭电杯”中国大学生算法设计超级联赛第七场
  4. 解决未能加载文件或程序集“Newtonsoft.Json ....“或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)
  5. c语言中sizeof函数的用法,sizeof函数怎么用 sizeof函数的使用方法
  6. 【第二篇】升级配置-OSD模块-图传-显示屏-摄像头
  7. 汇编语言_CS、IP和JMP指令
  8. Java充电宝模型设计,java共享充电宝管理系统ssm框架
  9. iTOP-i.MX6Q开发板Android7.1.2-获得root权限
  10. 2.JeeSite 基础—使用 JeeSite 快速开发项目—新建模块、单表代码生成、上传图片、富文本编辑