`
hereson
  • 浏览: 1444584 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

as3.0正则处理lrc

阅读更多

 

  1. package{  
  2.     import flash.display.*;  
  3.     import flash.events.*;  
  4.     import flash.net.*;  
  5.     import flash.utils.*;  
  6.       
  7.     import SingleLineLyrics;  
  8.       
  9.     public class LyricsFormat /*extends EventDispatcher*/*/{  
  10.           
  11.         private var path:String;  
  12.         private var AllLineLyrics:Array;  
  13.           
  14.         //歌曲信息;  
  15.         public var title:String;  
  16.         public var autor:String;  
  17.         public var album:String;  
  18.         public var by:String;  
  19.           
  20.         //事件类,我就不写了,  
  21.         public var onComplete:Function;  
  22.           
  23.           
  24.         /*
            *接收一个路径上的lrc;
            */
     
  25.         public function LyricsFormat(path:String){  
  26.             if(path==null){  
  27.                 throw new Error("必须要有至少一个参数");  
  28.             }  
  29.             AllLineLyrics=new Array();  
  30.               
  31.             var loader:URLLoader=new URLLoader();  
  32.             loader.dataFormat=URLLoaderDataFormat.TEXT;  
  33.             loader.addEventListener(Event.COMPLETE,completeHander);  
  34.               
  35.             var request:URLRequest=new URLRequest();  
  36.             request.url=path;  
  37.             loader.load(request);  
  38.         }  
  39.           
  40.         /*
            *加载完成;
            */
     
  41.         function completeHander(event:Event):void{  
  42.       
  43.             var loader:URLLoader=URLLoader(event.target);  
  44.             bulid(loader.data)  
  45.             loader.removeEventListener(Event.COMPLETE,completeHander);  
  46.               
  47.         }  
  48.           
  49.         /*
            *开始进行比对.存储;
            */
     
  50.         function bulid(data:String){  
  51.       
  52.             title=this.selectSingle(/\[ti:(.+)\]/i,data,"标题:");  
  53.             autor=this.selectSingle(/\[ar:(.+)\]/i,data,"歌手:");  
  54.             album=this.selectSingle(/\[al:(.+)\]/i,data,"专辑:");  
  55.             by=this.selectSingle(/\[by:(.+)\]/i,data,"制作:");  
  56.               
  57.             trace([title,autor,album,by]);  
  58.       
  59.  
  60.             var RE:RegExp=/\n\[\d+:.+\][^\[\r\n]*/img;  
  61.             var Lyrics:Array=data.match(RE);  
  62.                           
  63.             for each(var i:String in Lyrics){  
  64.                 var singleLineTime:String=this.selectSingle(/\[(.+)\].*/,i);  
  65.                 var singleLineTimeArray:Array=singleLineTime.split("][");  
  66.                 var singleLineText:String=this.selectSingle(/.+\](.*)/,i);  
  67.           
  68.                 for each(singleLineTime in singleLineTimeArray){  
  69.                       
  70.                     var LineTimeArray:Array=singleLineTime.split(":");  
  71.                       
  72.                     var lineTime:Number=Number(LineTimeArray[0])*60*1000+Number(LineTimeArray[1])*1000;  
  73.                       
  74.                     AllLineLyrics.push(new SingleLineLyrics(lineTime,singleLineText));  
  75.                       
  76.                 }  
  77.                   
  78.             }  
  79.             AllLineLyrics.sort(this.Equals);  
  80.               
  81.             //触发;  
  82.             this.onComplete();  
  83.         }  
  84.           
  85.         /*
            *进行排序比较;
            */
     
  86.         public function Equals(a,b){  
  87.             return SingleLineLyrics(a).Equals(b);  
  88.         }  
  89.           
  90.         /*
            *返回所需数组;
            */
     
  91.         public function toArray():Array{  
  92.               
  93.             return this.AllLineLyrics;  
  94.         }  
  95.           
  96.         /*
            *用正则选择单个所需内容;
            */
     
  97.         function selectSingle(RE:RegExp,data:String,typeS:String=""):String{  
  98.             if(RE.test(data)){  
  99.                 return typeS+""+RE.exec(data)[1];  
  100.             }  
  101.             //没有记录此项;  
  102.             return " ";  
  103.         }  
  104.           
  105.     }  
分享到:
评论

相关推荐

    Flash AS3.0 正则表达式

    通过上述解析可以看出,在AS3环境下利用正则表达式进行文本处理是一项非常实用的技术。无论是简单的字符串替换还是复杂的模式匹配,都可以通过编写适当的正则表达式来实现。对于开发者而言,掌握这些正则表达式的...

    as3.0编程手册.pdf

    9.使用正则表达式 10.处理事件 11.处理 XML 12.显示编程 13.处理几何结构 14.使用绘图 API 15.过滤显示对象 16.处理影片剪辑 17.处理文本 18.处理位图 19.处理视频 20.处理声音 21.捕获用户输入 22.网络与通信 23....

    AS3.0殿堂之路_笔记

    本笔记将详细讲解AS3.0的基础知识,包括语言元素、数据类型、变量声明、运算符、流程控制以及函数的高级使用。 2.1.2 数据类型是编程语言的基础。AS3.0中有两类数据类型:简单数据类型和复杂数据类型。简单数据类型...

    Actionscript_3_正则表达式的使用

    在ActionScript 3.0(AS3)中,正则表达式作为一种强大的文本处理工具被引入,它能够帮助开发者高效地进行字符串搜索、替换和解析等操作。正则表达式由多个部分组成,包括元字符、元序列、标志以及数量表达符,下面...

    汉字转拼音(AS3.0)

    此外,还可能涉及字符串处理和正则表达式的使用,以确保拼音转换的准确性和效率。 接下来,我们来看看“array.as”这个文件。这很可能是一个AS3源代码文件,包含了实现汉字转拼音功能的函数或者类。代码可能定义了...

    AS2 正则表达式

    Flash AS2.0 常用的正则表达式

    swift 3.0 正则表达式查找/替换字符的实现代码

    Swift 3.0中的正则表达式功能非常强大,能够通过字符串模式匹配和文本处理实现复杂的文本操作任务,大大提高了文本处理的效率和灵活性。掌握正则表达式以及在Swift中的应用对于开发人员来说是非常必要的技能。

    E正则助手-正则处理文本数据

    E正则助手.exe,帮助学习实践正则,快速高效的学习正则处理文本

    as3.0开发人员必备手册【精】

    ### 使用日期和时间 #### 管理日历日期和时间 在ActionScript 3.0(AS3.0...以上是根据提供的内容概要整理出来的知识点,希望能帮助您深入理解AS3.0中关于日期和时间、字符串、数组、错误处理以及正则表达式的使用。

    AS正则表达式小工具

    AS3 的正则表达式工具,目前仅支持简单的匹配验证

    BGP_AS-PATH的正则表达式

    ### BGP_AS-PATH的正则表达式:深入解析与应用 #### 一、BGP_AS-PATH与正则表达式的基本概念 BGP (Border Gateway Protocol) 是互联网上使用最广泛的路由协议之一,用于在不同的自治系统(AS)之间交换路由信息。AS-...

    Flash_AS_3.0

    《深入理解Flash AS 3.0:语言基础与实践应用》 ActionScript 3.0是Adobe Flash开发中不可或缺的一部分,它为创建交互式动画、游戏以及富互联网应用程序提供了强大的支持。本篇将深入探讨ActionScript 3.0的基础...

    AS3.0_AS3殿堂之路_笔记

    ### AS3.0_AS3殿堂之路_笔记 #### 核心知识点概览 根据提供的笔记内容,我们可以总结出以下核心知识点: 1. **基础概念理解与应用** 2. **事件处理与监听** 3. **图形绘制与动画制作** 4. **类与对象的设计** 5. ...

    ActionScript 3.0 编程(PDF)

    本教程将深入探讨ActionScript 3.0 的各个方面,帮助你成为一名熟练的AS3程序员。 一、ActionScript 3.0 语言基础 1. 语法:AS3.0 引入了严格的类型系统,要求在声明变量时指定类型,如 `var myVar:Number;`。此外...

    swift-POSIXRegex-为Swift3.0提供POSIX正则表达式

    在Swift编程语言中,虽然内置了强大的`NSRegularExpression`类来处理正则表达式,但其基于Objective-C的API可能对Swift开发者来说不够简洁。针对这种情况,"swift-POSIXRegex-为Swift3.0提供POSIX正则表达式"项目...

    Hansen 正则化matlab工具箱

    在数学和统计学中,正则化是一种通过引入额外的约束或惩罚项来避免过拟合的技术,特别是在处理高维或病态问题时。这里的“病态”指的是矩阵的条件数较大,导致解的不稳定性。Hansen工具箱就是专门针对这类问题而设计...

    图像的正则化滤波实现.zip

    在图像处理领域,正则化滤波是一种常用的技术,它用于改善图像质量,尤其是在存在噪声或模糊的情况下。本文将深入探讨正则化滤波的概念、MATLAB中的实现以及其在图像处理中的应用。 正则化滤波是图像去噪和恢复的一...

    易语言正则取Json数据

    7. **错误处理**:在处理过程中,要考虑到可能出现的错误,如无效的Json格式、正则表达式匹配失败等,需要有适当的错误处理机制。 在提供的压缩包文件中,“易语言正则取Json数据源码”应该包含了实现以上步骤的源...

    matlab编写的图像处理正则化软件包。包含了基本的数字图像

    标题和描述中提到的“matlab编写的图像处理正则化软件包”是一个基于MATLAB环境的专业工具箱,主要用于数字图像处理中的正则化技术。正则化是图像处理领域中一个重要的概念,它用于解决图像恢复、去噪、边缘检测等...

    正则表达式处理匹配[](){}

    <某个字符> (某个字符) [某个字符] {某个字符} $a$ !a1 $a! &a* bac

Global site tag (gtag.js) - Google Analytics