チェンジセット 2632

差分発生行の前後
無視リスト:
コミット日時:
2009/05/13 17:59:05 (3 年前)
コミッタ:
alumican
ログメッセージ:

--

ファイル:

凡例:

変更無し
追加
削除
更新
コピー
移動
  • as3/BeatDispatcher/src/net/alumican/as3/utils/beatdispatcher/BeatDispatcher.as

    r2390 r2632  
    4646                private var _totalPosition:uint; 
    4747                 
     48                private var _currentTime:Number; 
     49                private var _totalTime:Number; 
     50                private var _currentRatio:Number; 
     51                private var _trackStartTime:Number; 
     52                 
    4853                private var _startTime:Number; 
    4954                private var _oldTime:Number; 
     
    8287                public function get totalPosition():uint { return _totalPosition; } 
    8388                 
     89                public function get currentTime():Number { return _currentTime; } 
     90                public function get totalTime():Number { return _totalTime; } 
     91                 
     92                public function get currentRatio():Number { return _currentRatio; } 
     93                 
    8494                public function get isOnMeasure():Boolean { return _isOnMeasure; } 
    8595                public function get isOnBeat():Boolean { return _isOnBeat; } 
     
    112122                        _totalPosition = _measure * _beat * _tpqn; 
    113123                         
     124                        _totalTime = 1000 * _measure * _beat * 60 / bpm; 
     125                         
    114126                        _isTicking = false; 
    115127                         
     
    149161                        _isOnStart    = true; 
    150162                        _isOnComplete = false; 
     163                         
     164                        _trackStartTime = _startTime; 
     165                        _currentRatio   = 0; 
     166                        _currentTime    = 0; 
    151167                         
    152168                        //イベント発行 
     
    293309                        var hasListener:Boolean = false; 
    294310                         
    295                         var currentTime:Number = getTimer(); 
    296                         var elapsedTime:Number = _tpqn * _bpm * (currentTime - _startTime) / 60000; 
     311                        var time:Number = getTimer(); 
     312                        var elapsedTime:Number = _tpqn * _bpm * (time - _startTime) / 60000; 
    297313                         
    298314                        //最小時間単位 
     
    306322                                ++_currentTick; 
    307323                                _oldTime = elapsedTime; 
     324                                _currentRatio = 0; 
    308325                                 
    309326                                if (_refCounter[_currentPosition] != null) { 
     
    343360                                _currentPosition = 0; 
    344361                                 
     362                                _trackStartTime = getTimer(); 
     363                                 
    345364                                _isOnComplete = true; 
    346365                                 
     
    350369                        } 
    351370                         
     371                        _currentTime  = time - _trackStartTime; 
     372                        _currentRatio = _currentTime / _totalTime; 
     373                         
    352374                        //イベントの発行 
    353375                        if (_isOnStart   ) _dispatchCustomEvent(BeatDispatcherEvent.START);