flash中显示LRC歌词原理(2)

2008-04-02 11:06:25来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折



  }

  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
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: FlashAS学习:对于TREE组件的一点整理

下一篇: 使用LocalConnection数据通信