WEB开发网
开发学院图形图像Flash Flash AS制作LRC歌词同步的详细教程 阅读

Flash AS制作LRC歌词同步的详细教程

 2008-06-05 11:22:38 来源:WEB开发网   
核心提示: QUOTE:43830 而你嫣然的一笑如含苞待放48300 你的美一缕飘散50770 去到我去不了的地方181920 天正在等烟雨183570 而我在等你185920 炊烟袅袅升起187760 隔江千万里4.在LRC文件,还有多时间序列的存在,Flash AS制作LRC歌词同步的详细教程(

QUOTE:

43830 而你嫣然的一笑如含苞待放

48300 你的美一缕飘散

50770 去到我去不了的地方

181920 天正在等烟雨

183570 而我在等你

185920 炊烟袅袅升起

187760 隔江千万里

--------------------------------------------------------------------------------

4.在LRC文件,还有多时间序列的存在,所以单时间序列算法不能满足实际需要,下面就来解决多时间序列问题;

LRC 内容如下:

QUOTE:

[00:43.83]而你嫣然的一笑如含苞待放

[00:48.30]你的美一缕飘散 

[00:50.77]去到我去不了的地方

[03:01.92][02:25.63][00:56.90]天正在等烟雨 

[03:03.57][02:27.91][00:58.99]而我在等你 

[03:05.92][02:30.44][01:00.93]炊烟袅袅升起 

[03:07.76][02:32.25][01:03.49]隔江千万里

代码如下:

CODE:

 function LoadFinish(evt:Event):void {
 var list:String=evt.target.data;
 var listarray:Array=list.split("
");
 var reg:RegExp=/[[0-5][0-9]:[0-5][0-9].[0-9][0-9]]/g;
 //建立正则表达式,范围:[00:00.00]~[59:59.99]
 for (var i=0; i  var info:String=listarray[i];
  //提取每行内容,用变量 info 保存
  var len:int=info.match(reg).length;
  //该行拥有时间序列的个数
  var timeAry:Array=info.match(reg);
  //将匹配的时间序列保存到 timeAry 数组中
  var lyric:String=info.substr(len*10);
  //根据每个时间序列占10个字符,找出歌词内容的起点
  //将歌词提取到 lyric 变量中
  for (var k:int=0; k  var obj:Object=new Object();
  var ctime:String=timeAry[k];
  var ntime:Number=Number(ctime.substr(1,2))*60+Number(ctime.substr(4,5));
  obj.timer=ntime*1000;
  obj.lyric=lyric;
  LRCarray.push(obj);
  trace(obj.timer,obj.lyric);
  }
  //将时间序列转换为毫秒并与歌词一起保存为一个数组元素
 }
 }
输出结果:

上一页  1 2 3 4 5 6 7  下一页

Tags:Flash AS 制作

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接