flash中显示LRC歌词原理(2)
2008-04-02 11:06:25来源:互联网 阅读 ()
}
if (lineData.lastIndexOf("]")>lineData.lastIndexOf("[")) {
lrcData.info[i] = tagName lineData.slice(lineData.lastIndexOf(":") 1, lineData.lastIndexOf("]"));
} else {
lrcData.info[i] = lineData;
}
if (lineData.indexOf("[offset:") != -1) {
//[offset:时间补偿值]
lrcData.info[i] = "------------------------------------------";
offset = Number(lineData.slice(lineData.lastIndexOf(":") 1, lineData.lastIndexOf("]")));
if (isNaN(offset)) {
offset = 0;
}
}
lrcData.timer[i] = 0;
}
i ;
//[01:17][02:24][02:53][03:21] 多时间标签支持
var surplusData = new String(lineData.slice(lineData.indexOf("]") 1));
if (surplusData.indexOf("[") != -1) {
hasMoreTags = true;
parseLineData(surplusData);
}
}
function sortTimer() {
lrcData.timerID = new Array();
for (var i = 0; i lrcData.timerID[i] = i;
}
////使用快速排序(备用)
//QuickSorter(lrcData.timer);
InsertionSorter(lrcData.timer);
lrcData.tmpInfo = new Array();
for (var i = 0; i lrcData.tmpInfo[i] = lrcData.info[lrcData.timerID[i]];
}
lrcData.info = lrcData.tmpInfo;
}
//数组排序算法:插入排序
//这份算法代码核心是从网上找的
function InsertionSorter(list) {
for (var i = 1; i var t = list[i];
var j = i;
while ((j>0) && (list[j-1]>t)) {
list[j] = list[j-1];
var myC = lrcData.timerID[j];
lrcData.timerID[j] = lrcData.timerID[j-1];
lrcData.timerID[j-1] = myC;
--j;
}
list[j] = t;
}
}
//快速排序(备用)
//这份算法代码核心是从网上找的
function QuickSorter(list) {
var low = 0;
var high = list.length-1;
if (high<=low) {
return;
} else if (high == low 1) {
if (list[low]>list[high]) {
Swap(low, high);
return;
}
}
myQuickSort(list, low, high);
}
function myQuickSort(list, low, high) {
if (low var pivot = Partition(list, low, high);
myQuickSort(list, low, pivot-1);
myQuickSort(list, pivot 1, high);
}
}
function Partition(list, low, high) {
var pivot;
var pivot = list[low];
while (low while (low=pivot) {
high--;
}
if (low != high) {
Swap(low, high);
low ;
}
while (low low ;
}
if (low != high) {
Swap(low, high);
high--;
}
}
return low;
}
function Swap(l, r) {
var myl = lrcData.timerID[l];
lrcData.timerID[l] = lrcData.timerID[r];
lrcData.timerID[r] = myl;
lrcData.timer[l] = lrcData.timer[l] ^ lrcData.timer[r];
lrcData.timer[r] = lrcData.timer[l] ^ lrcData.timer[r];
lrcData.timer[l] = lrcData.timer[l] ^ lrcData.timer[r];
}
//
//LRC显示
function startShowLRC() {
this.onEnterFrame = checTimer;
isLRCShow = true;
var t = getTimer();
var myTextTest = "";
for (var i = 0; i<=lrcData.info.length; i ) {
myTextTest = lrcData.info[i] "\n";
mc_lrc.tx_lrc.text = myTextTest;
lrcData.txScroll[i] = mc_lrc.tx_lrc.maxscroll;
}
trace(getTimer()-t);
trace(lrcData.txScroll);
mc_lrc.tx_lrc.htmlText = "";
showLRCInfo(0);
}
t = 0;
function checTimer() {
if (_root.musicPlay.mySound.position-checBackPosition<-500) {
t = 0;
mc_lrc.tx_lrc.scroll = 0;
}
checBackPosition = _root.musicPlay.mySound.position;
//时间检测
if (_root.musicPlay.mySound.position>lrcData.timer[t]*1000-600-offset && lrcData.timer[t]>=lrcData.timer[t-1]) {
if (lrcData.timer[t] != 0) {
mc_lrc.tx_lrc.scroll = lrcData.txScroll[t-1] 3;
}
gotoAndPlay(8);
n = t;
t ;
}
}
fontColor1 = new String("005CB9");
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash
