Logo

dansion’s 日志

学无止境~~~~~~~
rss
  • 首页
  • 日志首页
  • FLASH音乐盒
  • FLash 地图
  • 登录

Posts Tagged ‘mp3’

用Flash AS3正则表达式实现百度的MP3搜索

星期天, 三月 2nd, 2008

利用flash的URLRequest向百度发送关健字,再利用正则表达式提取mp3结果列表.再对结果列表再次请求,获取mp3的真实地址.
下面是具体的类



package {
    import flash.display.Sprite;
    import flash.display.MovieClip;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import flash.events.ProgressEvent;
    import flash.net.URLVariables;
    import flash.net.URLLoader;
    import flash.net.URLRequest;
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;
    import flash.xml.*;
    import flash.events.IOErrorEvent;

    public class Mp3Search extends MovieClip {
        private var xmlTextField:TextField = new TextField();
        //dansion.com dansion@163.com,;
        private var loader:URLLoader;
        private var sub:Number;
        public var Mp3List:Array;

        public function Mp3Search() {
            Mp3List=new Array();
            Mp3_search.trackAsMenu=true;
            Mp3_search.addEventListener(MouseEvent.CLICK,search);
        }
        private function search(event:Event):void {
            var variables:URLVariables=new URLVariables("f=ms&tn=baidump3&ct=134217728&lf=&rn=&lm=0");
            variables.word=input.text;
            var request:URLRequest = new URLRequest();
            request.url="http://mp3.baidu.com/m";
            request.data=variables;

            loader = new URLLoader();

            try {
                loader.load(request);
            } catch (error:SecurityError) {
                trace("A SecurityError has occurred.");
            }

            loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
            loader.addEventListener(Event.COMPLETE, loaderCompleteHandler);
            loader.addEventListener(ProgressEvent.PROGRESS,loaderProgress);

            trace("btn is donw: "+input.text);
        }
        private function loaderCompleteHandler(event:Event):void {
            progress_txt.text="加载完成";
            //var mp3Exp:RegExp=/http://([w-]+.)+[w-]+([w- ./?$,[]%&;:,+=u4e00-u9fa5]*)?216/g;
            //var mp3Exp:RegExp=/http://[^box][0-9]([w-]+.)+[w-]+([w- ./?$,[]%&;:,+=u4e00-u9fa5]*)?216/g;
            var mp3Exp:RegExp=/http://220.181.38.82([w- ./?$,[]%&;:,+=u4e00-u9fa5]*)?216/g;
            var mp3_array:Array=new Array();
            mp3_array=loader.data.match(mp3Exp);
            //trace(loader.data.match(mp3Exp));
            /*for (var i=0; i<mp3_array.length; i++) {
                //trace("输出:  "+mp3_array[i]+"   结束");
                var chineseExp:RegExp=/[u4e00-u9fa5]+/;
                //trace(mp3_array[i].match(chineseExp));
                Mp3Name.push(mp3_array[i].match(chineseExp));
            }*/
            trace("——————–");
            formatURL(mp3_array);

        }
        private function formatURL(array:Array) {
            for (var i=0; i<array.length; i++) {
                SubLoad(array[i],i);
                //sub=i;
            }
        }
        private function SubLoad(url:String,num:Number) {
            var chineseExp:RegExp=/[u4e00-u9fa5]+/;
                //trace(mp3_array[i].match(chineseExp));
                //trace(url);
            //var mp3name:String=new String();
            var mp3name:String=String(url.match(chineseExp));
            
            var subrequest:URLRequest = new URLRequest();
            subrequest.url=url;
          
60; var sub_loader:URLLoader;
            sub_loader = new URLLoader();
            try {
                sub_loader.load(subrequest);
            } catch (error:SecurityError) {
                trace("A SecurityError has occurred.");
            }
            sub_loader.addEventListener(Event.COMPLETE,SubLoaderComplete);
            //sub_loader.addEventListener(ProgressEvent.PROGRESS,loaderProgress);
            function SubLoaderComplete() {
                progress_txt.text="开始分析第"+mp3name+"搜索结果";
                var SubMp3Exp:RegExp=/http://([w-]+.)+[w-]+([w- ./?%&=u4e00-u9fa5]*)?.mp3/g;
                trace(mp3name+" :: "+sub_loader.data.match(SubMp3Exp)[0]);
            }
        }
        private function loaderProgress(event:ProgressEvent):void {
        progress_txt.text=String(event.bytesLoaded)+"/"+String(event.bytesTotal);
        }
        private function errorHandler(event:IOErrorEvent):void {
            trace("IOErrorEvent 出错");    
        }
    }
}



其中主要是两个正则表达式写法.
新建一个MC链接Mp3Search类,MC里有一个文本输入框(名:input),一个表示按扭的MC(Mp3_search),加载提示动态文本框(progress_txt).

转载请注明出处!

点这里下载

Tags: actionscript3, flash, Flash ActionScript, mp3
Posted in 作品 | No Comments »

  • about me

    dansion:现就职于口碑UED,从事前端发开工作。倚看浮尘,独乐矣!
    twitter:dansion.zeng
  • TAG

      五笔 农历 播放器 玄学 百度 网站 actionscript3 AMFPHP as css CSS3预览 dreamweaver FancyUpload ff firefox flash flash 10 Flash ActionScript Flash ActionScript flash cs3 flash remotion flex flv google html ie ie6 ie8 im Javascript js loader mp3 opensearch qq svn textarea WebSlices z-index
  • 最新文章

    • js与flash交互
    • yui2.8在Dreamweaver的代码提示
    • QQ五笔的小动作!
    • swfobject判断浏览器是否安装或是启用flash
    • 自定义 Dreamweaver CS4 代码提示
    • FLASH Loader 的 bug?
    • 离开深圳
    • JS滚动条
    • as闭包,addEventListener传参数.
    • 闭包!!!
  • 最新评论

    • tms: as3 已经不支持扩展date了,悲剧了
    • xw1001: 帮了大忙多谢分享
    • qq: qq拼音也有的,本来以为qq拼音很简洁,是qq唯一一款我用着好的产品,但没想到在这还有个陷阱呢,看来qq的东西还是少用为好。
    • zhouqi: 好冷清,捧场来了~ YUI提示快上来吧~
    • kenis: 在天地会看到博主的农历类,特地来这里感谢博主~
    • dafi: QQ五笔输入法已经出来了。
    • admin: 是比较杯具,因为虚拟服务商的问题。dis文件是文本类型的。
    • jinhr: 无法下载,以下是显示的错误信息。太可笑了。 发现被禁止的关键字:**** 在页面上发现被禁止的关键字:****! 请及时删除!
    • dafi: 你不在,吃饭时杀伤力都不强了。 那天江请吃饭都松了口气:还好曾董不在。。。
    • auzn: 是有问题 :)
  • 分类

    • Flash ActionScript (8)
    • FLASH心得 (8)
    • Javascript (6)
    • xhtml+css (16)
    • 了心作 (5)
    • 作品 (3)
    • 其它 (7)
    • 未分类 (8)
    • 网站相关 (2)
    • 胡言乱语 (2)
  • 存档

    • 2010年二月
    • 2009年十一月
    • 2009年十月
    • 2009年八月
    • 2009年七月
    • 2009年六月
    • 2009年五月
    • 2009年四月
    • 2008年十二月
    • 2008年八月
    • 2008年六月
    • 2008年五月
    • 2008年四月
    • 2008年三月
    • 2008年二月
    • 2008年一月
    • 2007年十二月
    • 2007年十一月
    • 2007年十月
    • 2007年五月
    • 2007年四月
    • 2007年三月
    • 2007年一月
© 2005-2010 dansion’s 日志 is proudly powered by WordPress Entries (RSS) and Comments (RSS). 浙ICP备06014046号