WEB开发网
开发学院图形图像Flash FLASH打造LRC歌词播放器 阅读

FLASH打造LRC歌词播放器

 2007-01-03 10:53:38 来源:WEB开发网   
核心提示: 1、文件头是记录歌词信息的文字,下面就是时间跟歌词内容的信息了,FLASH打造LRC歌词播放器(4),2、每一行都是由一到几个用中括号标记的时间值及该时间要显示的歌词内容组成,如:[04:07.94][02:07.79]败给你的黑色幽默,从范例可见:歌词文件以行为单位,所以先把文本每行的字

1、文件头是记录歌词信息的文字,下面就是时间跟歌词内容的信息了。

2、每一行都是由一到几个用中括号标记的时间值及该时间要显示的歌词内容组成。

如:[04:07.94][02:07.79]败给你的黑色幽默,代表在2分7秒79跟4分7秒94都显示"败给你的黑色幽默"这句歌词。

了解了LRC文件的结构后,就可以利用AS强大的字符串处理功能,把里头包含的一些变量值提取出来。

从范例可见:

歌词文件以行为单位,所以先把文本每行的字符串分别存于一个变量中,但是变量数目不确定,所以就把变量存于数组中。

在LOADLYRICS函数里追加代码:

var OriginLyrics=new Array();//创建一个存放每行歌词的数组对象

OriginLyrics=lyricsString.split(chr(10))//把字符串分析为数组,分隔符为chr(10)+chr(13)(关于这个分隔符,笔者其实还是比较模糊,笔者开始不知道歌词在换行的时候是用了回车符还是换行符.这个分隔符CHR(10)是笔者经过多次尝试后得出来的).

for (var i in originLyrics) {

if (originLyrics[i] == "") {

originLyrics.splice(i, 1);

}

}//歌词文件里可能有些行是没内容的,这些先删除,以免对后面的分析造成影响。

但是,我们还发现,有些行是多个时间,只有一句歌词.其实这是LRC的压缩格式,为了统一,我们还需要对这些压缩的部分进行"解压",使得每行的组成都是一个时间对应一句歌词。

所以,再定义一个新数组originLyricsBreak,放置解压后的歌词:

下面将以歌词"[04:07.94][02:07.79]败给你的黑色幽默"为例,解释解压歌词的代码:

var originLyricsBreak=new Array();

for (var i in originLyrics) {

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

Tags:FLASH 打造 LRC

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