FreamCounterClass.as

  1. package
  2. {
  3. import flash.utils.*;
  4.  
  5. public class FreamCounterClass {
  6.  
  7. private static var freamSkipMax:uint = 6;
  8. private static var freamLostMax:uint = 16;
  9. //-------------------------------------------------------------------------------
  10. private var freamRate:Number = 60;
  11. private var freamTime:Number = 16.667;
  12. private var freamCount:int = 1;
  13.  
  14. private var lastProcessTime:uint = 0;
  15. private var vatulFream:Number = 0;
  16. //-------------------------------------------------------------------------------
  17. public function FreamCounterClass( _freamRate:Number = 60 ) {
  18. freamRate = _freamRate;
  19. freamTime = 1000 / freamRate;
  20. }
  21. //-------------------------------------------------------------------------------
  22. public function set virtualFreamRate (_freamRate:Number):void {
  23. freamRate = _freamRate;
  24. freamTime = 1000 / freamRate;
  25. }
  26.  
  27. public function get virtualFreamRate ():Number {
  28. return freamRate;
  29. }
  30. //-------------------------------------------------------------------------------
  31. public function get virtualFreamCount ():uint {
  32. return freamCount;
  33. }
  34. //-------------------------------------------------------------------------------
  35. public function resetCount ():void {
  36. lastProcessTime = 0;
  37. return ;
  38. }
  39. //-------------------------------------------------------------------------------
  40. public function nextFream():uint {
  41. var timeStamp:uint = getTimer();
  42.  
  43. if(lastProcessTime != 0){
  44. vatulFream += (timeStamp - lastProcessTime) / freamTime;
  45. if (vatulFream > freamLostMax) vatulFream = freamLostMax;
  46. freamCount = ((vatulFream + 0.25)|0);
  47. if(freamCount >= freamSkipMax) freamCount = freamSkipMax;
  48. vatulFream -= freamCount;
  49. if(vatulFream <= -0.5) vatulFream = -0.5;
  50. }
  51. lastProcessTime = timeStamp;
  52. return freamCount;
  53. }
  54. //-------------------------------------------------------------------------------
  55. }
  56.  
  57. }
最終更新:2013年03月14日 22:16