思路:1.设一个变量,如:friction
用于设置摩擦力;
2.mc的移动速度每次乘以摩擦力,当摩擦力=1时,不会改变速度;
当摩擦力小于1时,如:0.8,速度每次都要打8折,折上折直至零。
步骤1:
绘制摇奖盘,保存为影片剪辑,实例名为"mc";
绘制出二个按钮,保存为按钮,实例名分别为:"play_btn","stop_btn".
步骤2:
加入AS代码层:
var friction =
1;
//表示摩擦力,当friction=1,没有擦力;friction<1,开始拥有摩擦力
var speed = 70;
//圆盘转动的速度
var go = false;
//go=true,圆盘转动,go=false,圆盘停止;
_root.onEnterFrame
= function () {
if (go)
{
speed =
speed*friction;
//也可写成speed*=friction
mc._rotation +=
speed;
}
};
play_btn.onRelease = function() {
go = true;
speed = 70;
friction =
1;
};
//开始按钮
stop_btn.onRelease = function() {
friction = 0.8;
};
//停止按钮
Flash充电1: onEnterFrame
理解:可以简单地理解成为"实时刷新",FPS(帧频)值影响其刷新速度;
定义:以 SWF
文件的帧频重复调用;
例如:
for(i=1;i<=10;i++){trace(i);}
//运行后立即显示 1~10;
设i初值为1
while(i<=10){trace(i);i++;}
//运行后立即显示 1~10;
设i初值为1
onEnterFrame = function(){
if(i<=10)
{ trace(i) }
i++;
};
//运行后间断显示
1
2
3
4
5
6
7
8
9
10
Flash充电2:摩擦力实现原理
例如:speed=10;
friction=0.8;
onEnterFrame=function(){
speed=speed*friction
trace(speed)
}
显示结果:
10
8
6.4
5.12
4.096
3.2768
2.62144
2.097152
1.6777216
1.34217728
1.073741824
0.8589934592
speed
每一次都在原有的数字上面乘以0.8,也就是原有数字的80%。
speed
减小,且无限趋近于0,实现摩擦力效果