作者hanshiuan (黄皮)
看板Flash
标题Re: [问题] 怎样让影格跑的比较慢?
时间Sun Jun 4 20:47:54 2006
※ 引述《submarine (submarine)》之铭言:
: 我想设计像是转盘抽奖的东西,就是一个转盘上有1~6
: 按下开始会 转盘会开始转,从快到最後停下来,指针指到转盘上的的就是奖品
: 我现在想到的是用补间动画再把转盘变形转角度。
: 但是问题来了,我要怎麽让转盘从快变到慢,最後停下来?
: 因为如果是用影格的话转的速度就一样了……
: 还是有办法让影格跑的比较慢??
: 各位大大请指教
我猜你要的应该不是让「影格」跑慢,
而是要使转盘的「转速」随时间的经过而逐渐下降吧…!?
我大概写了一小段as,
你只要复制到主时间轴的第一影格中,
并新增一个实体名称为「abc_mc」的影片片段,
拉到主时间轴上,就可以进行测试。
var x:Number = new Number();
var y:Number = new Number();
_root.onMouseDown = function() {
x = Math.PI/180*0;
_root.onEnterFrame=function(){
while (x<=(Math.PI/2) && x>=0) {
x = x+(Math.PI/180);
y = 5*Math.cos(x);
abc_mc._rotation += y;
trace(y);
break;
}
};
};
概念其实很简单,
是利用cos函数在弧度(0~π/2)之间,
其函数值是由1缓降至0的原理,
只不过不够逼真就是了。
若将其值对应到你要的MovieClip的旋转角度上,
也就表示它会逐渐停止。
特别在於「y = 5*Math.cos(x);」一式中我将函数值放大了5倍,
目的仅在於让该MovieClip转过的角度大一点。
trace只是让我自己知道它跑过的所有数值资料;
而把fps调得高一些,它转得也会快些。
以上,
提供给你参考。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.115.216.24
※ 编辑: hanshiuan 来自: 140.115.216.24 (06/04 20:48)
※ 编辑: hanshiuan 来自: 140.115.216.24 (06/04 20:49)
1F:推 submarine:嗯 谢谢您的教导 我最近也在想从ACTIONSCRIPT下手解决 06/07 22:19
2F:→ laugher:这不需要用到as吧... 06/08 01:38