欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Flash AS3用于读取LRC同步歌词的类

程序员文章站 2022-06-08 20:59:05
今天心情不错,用FLASH写了一个用于读取LRC同步歌词的类,只要25行代码,完全用是用FLASH的字符串操作来分析标签的。 下面就是这个类: package LRC{ public class readlrc { ... 08-10-06...
今天心情不错,用flash写了一个用于读取lrc同步歌词的类,只要25行代码,完全用是用flash的字符串操作来分析标签的。
下面就是这个类:

package lrc{
public class readlrc {
public function readlrcastime(mp3playtime:number,gc:string):string {
var qsd:int;//起始点
var fhz:string;
for (var j:int=0; j < gc.length; j ) {
if (gc.charcodeat(j) == 58) {
if (int(gc.slice(j - 2,j)) * 60 int(gc.slice(j 1,j 3)) == mp3playtime) {
var i:int=0;
do {
i ;
if (gc.charcodeat(j i) == 93) {
qsd=j i;
}
if (gc.charcodeat(j i) == 13) {
fhz=gc.slice(qsd 1,j i);
}
} while (gc.charcodeat(j i) != 13&&j i<gc.length);
}
}
}
return fhz;
}
}
}
将此文件保存为readlrc.as。
注意:一定要把此as文件放入一个名为lrc的文件夹中,才可以使用。
下面就用一个小示例来说明如何用这个类,新建一个as文件,写入以下代码:

package {
import flash.display.movieclip;
import flash.events.event;
import flash.net.urlloader;
import flash.net.urlrequest;
import flash.media.sound;
import flash.media.soundchannel;
import flash.system.system;
import flash.text.textfield;
import lrc.readlrc;
public class mp3 extends movieclip {
private var lrcreq:urlrequest=new urlrequest("日不落.lrc");
private var mp3url:urlrequest=new urlrequest("日不落.mp3");
private var mymp3:sound=new sound();
private var channel:soundchannel=new soundchannel();
private var lrcurl:urlloader=new urlloader();
private var tbgc:string;
private var mylrc:readlrc=new readlrc();
system.usecodepage=true;
public function mp3() {
mymp3.load(mp3url);
channel=mymp3.play();
lrcurl.load(lrcreq);
lrcurl.addeventlistener(event.complete,loaded);
}
private function enterframe(event:event) {
try {
gc_txt.text=mylrc.readlrcastime(int(channel.position/1000),tbgc);
} catch (error:error) {
//
}
}
private function loaded(event:event) {
tbgc=string(event.target.data);
addeventlistener(event.enter_frame,enterframe);
}
}
}
保存此文件为mp3.as。
写完后,我们还需要一个fla文件来编译这些代码,新建一个fla文件,名字随意,在场景中拖出一个动态文本域,实例名称填写gc_txt,在fla文件的文档类中填写mp3,将此fla文件与mp3.as文件,日不落.mp3文件,日不落.lrc文件和名为lrc的文件夹放入同一个目录下,测试影片,就可以看到效果了。