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

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

 2008-06-05 11:22:38 来源:WEB开发网   
核心提示: 四、LRC 的读取与存储转换(使用文档类设计)1.读取 LRC 文件,这一步非常简单与读取普通的文本文件是一样的; CODE:public function LRCPlayer() {var loader:URLLoader=new URLLoader();loader.load(new

四、LRC 的读取与存储转换(使用文档类设计)

1.读取 LRC 文件,这一步非常简单与读取普通的文本文件是一样的;

CODE:

public function LRCPlayer() {
 var loader:URLLoader=new URLLoader();
 loader.load(new URLRequest("LRC/青花瓷.lrc"));
 loader.addEventListener(Event.COMPLETE,LoadFinish);
 }
 private function LoadFinish(evt:Event):void {
 trace(evt.target.data);
 }--------------------------------------------------------------------------------

2.将读取的 LRC 数据按行分割( " " 为换行符),数组的每一个元素代表 LRC 的一行内容;

CODE:

 function LoadFinish(evt:Event):void {
 var list:String=evt.target.data;
 var listarray:Array=list.split("
");
 trace(listarray);
 }--------------------------------------------------------------------------------

3.在数组中提取每一行的时间及歌词,解决单时间序列的问题;(注意!此段代码只作讲解,不以应用)

LRC 内容如下:

QUOTE:

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

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

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

[03:01.92]天正在等烟雨 

[03:03.57]而我在等你 

[03:05.92]炊烟袅袅升起 

[03:07.76]隔江千万里

代码如下:

CODE:

function LoadFinish(evt:Event):void {
 var list:String=evt.target.data;
 var listarray:Array=list.split("
");
 for (var i=0; i  var info:String=listarray[i];
  //提取每行内容,用变量 info 保存
  var lyric:String=info.substr(10);
  //将歌词内容提取到 lyric 变量中
  var ctime:String =info.substr(0,10);
  //提取时间序列字串
  var ntime:Number=Number(ctime.substr(1,2))*60+Number(ctime.substr(4,5));
  //将时间字串转换为计算机可读取的时间
  var obj:Object=new Object();
  obj.timer=ntime*1000;
  obj.lyric=lyric;
  LRCarray.push(obj);
  //将时间与歌词保存到一个 Object 中,并压入LRCarray 数组
  trace(obj.timer,obj.lyric);
 }
 }
输出结果:

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

Tags:Flash AS 制作

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