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

  今天心情不错用FLASH写了个用于读取LRC同步歌词只要25行代码完全用是用FLASH串操作来分析标签

  下面就是这个类:

package LRC{
     public readlrc {
     public function readlrcastime(mp3playtime:Number,gc:String):String {
        var qsd:;//起始点
        var fhz:String;
         for (var j:=0; j < gc.length; j) {
                (gc.charCodeAt(j) 58) {
                    ((gc.slice(j - 2,j)) * 60 + (gc.slice(j + 1,j + 3)) mp3playtime) {
                         var i:=0;
                        do {
                            i;
                            (gc.charCodeAt(j + i) 93) {
                            qsd=j + i;
                              }
                             (gc.charCodeAt(j + i) 13) {
                                  fhz=gc.slice(qsd + 1,j + i);
                             }
                        } while (gc.charCodeAt(j + i) != 13&&j+i                    }
                }
            }
             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.;
        import flash.text.TextField;
       import LRC.readlrc;
        public mp3 extends MovieClip {
             private var lrcreq:URLRequest= URLRequest("日不落.lrc");
             private var mp3url:URLRequest= URLRequest("日不落.mp3");
              private var mymp3:Sound= Sound;
              private var channel:SoundChannel= SoundChannel;
             private var lrcurl:URLLoader= URLLoader;
              private var tbgc:String;
             private var mylrc:readlrc= readlrc;
             .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((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文件夹放入同个目录下测试影片就可以看到效果了



Tags:  flashcs4as3 flashas3编程 flashas3教程 flashas3

延伸阅读

最新评论

发表评论