计数器AS3的加速斜坡“递增”

时间:2010-02-09 21:27:16

标签: flash actionscript-3 trigonometry

我的计数器以恒定速度转到100。 有没有办法提高计数器的速度?

Flash可以使用三角函数值来实现速度, 但我不知道是否可以改变计时器类 上即时

它有几个部分。
(a。)提高计数器的速度?

(b。)某些部分的斜坡?
  - 有一个范围
  - 90-100开始加速

增量三角测量的任何一个例子都会有所帮助

alt text http://www.ashcraftband.com/myspace/videodnd/icon10.jpg

TRIG示例我想申请

var xVel:Number = Math.cos(radians) * speed;
var yVel:Number = Math.sin(radians) * speed;
//-------------------------------------------//
return deg * (Math.PI/180);

加油计数器“所有好的例子”

//EVERYONE HELPED "decimals corrected" 
var timer:Timer = new Timer(10);  
var count:int = 0; //start at -1 if you want the first decimal to be 0  
var fcount:int = 0; 

timer.addEventListener(TimerEvent.TIMER, incrementCounter);  
timer.start();  


function incrementCounter(event:TimerEvent) {  
  count++;  
  //
  fcount=int(count*count/10000);//starts out slow... then speeds up 
  //
  var whole_value:int = int(fcount / 100); //change value 
  var tenths:int = int(fcount / 10) % 10;   
  var hundredths:int = int(fcount) % 10; 

“感谢您花时间帮助”

2 个答案:

答案 0 :(得分:1)

为什么不使用许多ActionScript补间引擎之一,例如TweenLite

它可以为你做所有的数学计算,你只需要给它一个插值变量,它的最终值,插值的总持续时间,并在不同的缓动函数之间进行选择。

在某些情况下,如果您需要一些非常自定义的东西,您可以将Number变量从0添加到1,持续时间为&要使用的缓动函数,然后定义onUpdate函数,让您使用此值进行处理,该值将随时间插值。

答案 1 :(得分:0)

您可以通过将公式应用于计数变量来获得加速效果的简单近似值,如下所示:

var timer:Timer = new Timer(10); 
var count:int = 0; //start at -1 if you want the first decimal to be 0 
var fcount:int = 0;

timer.addEventListener(TimerEvent.TIMER, incrementCounter); 
timer.start(); 


function incrementCounter(event:TimerEvent) { 
  count++; 
  fcount=int(count*count/10000);//starts out slow... then speeds up 
  var whole_value:int = int(fcount/100); 
  var decimal_value:int = int(fcount/10) % 10;
  var hun_value:int = fcount % 10;
  mytext.text = whole_value + " : " + decimal_value + hun_value; 
} 

ie:count会定期增加,但fcount会与计数的平方成比例地增加。

如果你想要一个触发功能,你可以尝试fcount=int(acos(count/10000)*10000/(2*Math.PI));,但这只适用于count< = 10000。