Show
Ignore:
Timestamp:
07/04/09 04:28:41 (5 years ago)
Author:
arche
Message:

休符のみのトラックの次トラックがずれる現象と&のついたノートで終わるトラックの次トラックの先頭ノートが無視される現象の修正

Location:
lang/actionscript/flmml/trunk/src
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • lang/actionscript/flmml/trunk/src/com/txt_nifty/sketch/flmml/MML.as

    r33297 r34284  
    310310                break; 
    311311            case ";": // end of track 
     312                m_keyoff = 1; 
    312313                if (m_tracks[m_trackNo].getNumEvents() > 0) { 
    313                     m_tracks[++m_trackNo] = createTrack(); 
    314                 } 
     314                        m_trackNo++; 
     315                } 
     316                m_tracks[m_trackNo] = createTrack(); 
    315317                break; 
    316318            case "@": 
     
    481483            return -1; 
    482484        } 
    483 /* 09/04/03 arche [DEL] 
    484         protected function insertLenOrder(idArr:Array, valArr:Array, id:String, val:String):void { 
    485             var len:int = id.length; 
    486             var i:int; 
    487             for(i = 0; i < idArr.length; i++) { 
    488                 if (len >= ((String)(idArr[i])).length) break; 
    489             } 
    490             idArr.splice(i, 0, id); 
    491             valArr.splice(i, 0, val); 
    492         } 
    493  
    494         protected function replaceMacro(idArr:Array, valArr:Array):void { 
    495             var i:int; 
    496             for(i = 0; i < idArr.length; i++) { 
    497                 var id:String = idArr[i]; 
    498                 //trace("["+m_string.substr(m_letter, id.length)+"]"); 
    499                 if (m_string.substr(m_letter, id.length) == idArr[i]) { 
    500                     //trace("["+m_string.substr(m_letter, id.length)+"]"); 
    501                     m_string = m_string.substring(0, m_letter-1) + valArr[i] + m_string.substring(m_letter + id.length); 
    502                     //m_letter += valArr[i].length; 
    503                     break; 
    504                 } 
    505             } 
    506         } 
    507         protected function macroInMacro(str:String, idArr:Array, valArr:Array, id0:String):String { 
    508             var idx:int; 
    509             for(var i:int = 0; i < idArr.length; i++) { 
    510                 var id:String = "$"+idArr[i]; 
    511                 //trace("id:"+id); 
    512                 idx = str.indexOf(id); 
    513                 while(idx >= 0) { 
    514                     str = str.substring(0, idx) + valArr[i] + str.substring(idx + id.length); 
    515                     idx = str.indexOf(id, idx); 
    516                 } 
    517             } 
    518             // recursive call is prevented. 
    519             id0 = "$" + id0; 
    520             idx = str.indexOf(id0); 
    521             while(idx >= 0) { 
    522                 str = str.substring(0, idx) + str.substring(idx + id0.length); 
    523                 idx = str.indexOf(id0, idx); 
    524                 warning(MWarning.RECURSIVE_MACRO, id0); 
    525             } 
    526             return str; 
    527         } 
    528 */ 
    529  
    530         // 09/04/03 arche [ADD] begin 
     485 
    531486        protected function replaceMacro(macroTable:Array):Boolean { 
    532487            for each(var macro:Object in macroTable){ 
     
    571526            return false; 
    572527        } 
    573         // 09/04/03 arche [ADD] end 
    574528 
    575529        protected function processMacro():void { 
     
    638592            // macro 
    639593            begin(); 
    640             // 09/04/03 arche [ADD] begin 
    641594            var top:Boolean = true; 
    642595            var macroTable:Array = new Array(); 
     
    730683                } 
    731684            } 
    732             // 09/04/03 arche [ADD] end 
    733685        } 
    734686