ускорение "приращения" для Counter AS3 - PullRequest
0 голосов
/ 10 февраля 2010

Мой счетчик движется до 100 с постоянной скоростью. Есть ли способ увеличить скорость счетчика?

Flash может использовать значения тригонометрии для изменения скорости, но я не знаю, может ли это изменить класс таймера на лету.

Есть пара деталей.
(а) увеличить скорость счетчика?

(б) рампа в определенных частях?
- иметь диапазон
- 90-100 начинает расти

будет полезен любой пример тригонометрии приращений

альтернативный текст http://www.ashcraftband.com/myspace/videodnd/icon10.jpg

ПРИМЕР ТРИГА, КОТОРЫЙ Я ХОЧУ ПРИМЕНИТЬ

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 ]

1 голос
/ 10 февраля 2010

Почему бы вам не использовать один из множества движков ActionScript, например TweenLite ?

Он может сделать всю математику за вас, вам просто нужно указать, какую переменную интерполировать, ее окончательное значение, общую продолжительность интерполяции и выбрать между различными функциями замедления.

В некоторых случаях, если вам нужно что-то действительно нестандартное, вы можете просто изменить числовую переменную от 0 до 1 с помощью функции продолжительности и замедления, которую вы хотите использовать, а затем определить функцию onUpdate, чтобы позволить вам выполнить работать с этим значением, которое будет интерполироваться во времени.

0 голосов
/ 10 февраля 2010

Вы можете получить простое приближение ускоряющего эффекта, применив формулу к переменной count, например:

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; 
} 

то есть: количество увеличивается регулярно, но количество увеличивается пропорционально квадрату счета.

Если вы хотите использовать функцию триггера, вы можете попробовать fcount=int(acos(count/10000)*10000/(2*Math.PI));, но это сработает только для счета <= 10000. </p>

...