首先为大家隆重推出一套flash常用算法:三角函数。在flash中我们可以使用Math.sin, Math.cos,Math.tan等求三角函数方法来计算一个弧度值。我们都学过数学,知道正弦余弦三角函数的函数图是怎样的,它们的三角函数值会随着角度不断增大而在-1到1之间不断变化,那么有没有感觉这和人的心跳有点类似呢?一下张一下缩的很有规律。那么我们就可以使用正弦和余弦函数进行心跳的模拟,很好玩哦~
结果预览:http://www.iamsevent.com/upload/heartbeat.swf
先用CS工具新建一个元件,画一个心(管它画得像不像),完成后从library里面将这个元件拖到舞台上给其设置个ID(就叫做myHeat吧),再在舞台第一帧插入以下脚本代码:
- var radians:Number=0.1;
- var range:Number=0.5;
- var speed:Number=0.3;
- this.addEventListener(Event.ENTER_FRAME,onJump);
- function onJump(event:Event):void{
- //每个MovieClip类型都有scaleX和scaleY属性分别表示X与Y轴缩放比,1.0为原始长、宽,2.0为原长宽的两倍等等
- myHeat.scaleX = myHeat.scaleY = 1+Math.sin(radians)*range; //由于Math.sin(radians)的值介于-1到1之间,则乘以range后值介于-range与range之间,range值设置越大变化幅度越大哦
- radians+=speed;//每一帧都需要把弧度加上一点,如果不这么做,Math.sin(radians)的值就不会在-1到1之间变化了,speed值设得越大,我们的“心”变化速度越快
- }
以上代码很容易懂吧?呵呵,如果你做到了,恭喜你自己吧。