這是值得參考得雖然還看不到效果

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()" layout="absolute" width="1000" height="500" x="0" y="0">
<mx:Script>
 <![CDATA[
  import mx.controls.List;
  import mx.controls.DataGrid
      
  public var flag:Boolean =false;
  //初始化标志
  public var soundFactory:Sound = new Sound();
  //声音流,有关声音的数据
  public var song:SoundChannel;
  //控制应用程序中的声音
  public var downloadName:String;
  //歌曲歌词下载名称
  public var downloadData:String;
  //歌曲下载路径
  public var downloadURL:URLRequest;
  public var fileName:String;
  public var file:FileReference;
  public var page:Number = 1;
  //记录页数
  public var dp:Array = new Array();
  //搜索结果列表数据
  public var mp3NameStr:Array = new Array();
  //歌曲名称
  public var mp3UrlStr:Array = new Array();
  //歌曲路径
  public var TOP = new Array("周杰伦","S.H.E.","刘德华","王力宏 ","陈楚生",
   "蔡依林","张学友","五月天 ","林俊杰","花儿乐队","任贤齐",
   "F.I.R ","郑源","凤凰传奇","王菲","张韶涵 ","梁静茹","李宇春",
   "孙燕姿","王心凌 ","张靓颖","韩红","刘若英","张信哲 ","张杰",
   "beyond","罗志祥","周华健 ","许巍","张惠妹","黄家驹","信乐团 ",
   "阿杜","邓丽君","潘玮柏","羽泉 ","周传雄","水木年华","刀郎",
   "周笔畅 ","王杰","南拳妈妈","苏醒","伍佰 ","谢霆锋","小虎队",
   "魏晨","何洁 ","胡彦斌","光良","张震岳","陶喆 ","游鸿明",
   "李玖哲","孙楠","萧亚轩 ","韩雪","后弦","范玮琪 ","赵薇",
   "王栎鑫","庞龙","蔡妍 ","张宇","陈奕迅","陈小春","黎明 ",
   "成龙","田震","郑智化","刘欢 ","BOBO","张柏芝","张国荣",
   "朴树 ","吴克群","动力火车","阿桑","白雪 ","林志颖",
   "莫文蔚","阿木","温岚 ","蔡琴","袁泉","韩宝仪","卓依婷 ",
   "蔡健雅","阿宝","郭富城","王蓉 ","齐秦","马天宇","容祖儿",
   "阿穆隆 ","杨坤","宋祖英","杨丞琳","金莎 ","张栋梁","张含韵",
   "陈慧琳","迪克牛仔 ","那英","谭咏麟","组合","卫兰 ","香香",
   "高胜美","刘亦菲","周渝民 ","罗大佑","张雨生","薛之谦",
   "屠洪刚 ","李圣杰","陈慧娴","梅艳芳","黑涩会美眉 ","费玉清",
   "胡歌","腾格尔","李宗盛 ","Twins","梁咏琪","赵传","汪峰 ",
   "零点乐队","李慧珍","郑秀文","黄征 ","东来东往","李克勤",
   "吴奇隆","罗百吉 ","郭美美","韩晶","麻吉弟弟","黑鸭子 ",
   "迟志强","张卫健","孟庭苇","陈冠希 ","古巨基","卓文萱",
   "曹格","谢军 ","郑伊健","F","张敬轩","陈绮贞 ","CLUB",
   "Tank","阿牛","苏有朋 ","杜德伟","黄品源","戴佩妮","许慧欣 ",
   "林忆莲","弦子","童安格","陈百强 ","林志炫","金海心","林心如",
   "阿朵 ","品冠","韩磊","姜育恒","孙悦 ","邰正宵","誓言",
   "容中尔甲","俞灏明 ","苏慧伦","黄晓明","江美琪","许飞 ",
   "谢娜","信","伊能静","李玲玉 ","许志安","郑中基","老狼",
   "陈好 ","范逸臣","杨玉莹","安又琪","黄义达 ","杨钰莹",
   "黄圣依","萧萧","郭峰 ","古天乐","叶倩文","明道","陈坤");
  public function init():void {
    page=1;
    URLLoaderExample();
    signerlist.dataProvider= TOP
    signerlist.addEventListener(Event.CHANGE, listItemSelected);
  }
     public function listItemSelected(e:Event):void { 
           keyword.text =e.target.selectedItem
           searchClick()
     }
  //搜索歌曲
  public function searchClick():void {
    page=1;
    URLLoaderExample();
  }
  //播放指定歌曲
  public function playmusic():void{
    if (flag==true) {
    song.stop();
    }
    soundFactory = new Sound();
    //声音流,有关声音的数据
    var request:URLRequest = new URLRequest(downloadData);
    soundFactory.load(request);
    song = soundFactory.play(0,1);
    flag=true;
    msglabel1.text="正在播放:"+downloadName
  }
      //开始搜索数据
  public function URLLoaderExample():void {
   datalist.dataProvider=""
   dp.splice(0);
   mp3NameStr.splice(0);
   mp3UrlStr.splice(0);
   var loader:URLLoader = new URLLoader();
   loader.dataFormat = URLLoaderDataFormat.BINARY;
   configureListeners(loader);
   var request:URLRequest = new URLRequest("http://mp3.zhongsou.com/m?w="+keyword.text+"&bg="+page+"&ty=16");
   try {
     loader.load(request); 
   } catch (error:Error) {
   }
    pagetxt.text="第 "+page+" 页";
  }
  //数据加载监听
  private function configureListeners(dispatcher:IEventDispatcher):void {
   dispatcher.addEventListener(Event.COMPLETE, completeHandler);
  }
  //数据加载完成
  private function completeHandler(event:Event):void {
   var Str:String =event.target.data.readMultiByte(event.target.data.length,"GBK");
   mp3NameStr = search(unescape(Str), ".mp3&url=\" target=_blank class=z1>", "<span class=size1>");
   mp3UrlStr = search(unescape(Str), "surl=", "&url");
   //trace(mp3NameStr);
   //trace(mp3UrlStr);
   readData()
  }
  //解析数据
  public function readData():void {
   var i:Number;
    var l:Number =mp3NameStr.length;
   for (i=0; i<l; i++) {
      if (mp3NameStr[i].indexOf("<") != -1) {
     dp.push({label:search(mp3NameStr[i],"red>","</"),data:mp3UrlStr[i]});
    } else {
        dp.push({label:mp3NameStr[i],data:mp3UrlStr[i]});
    }
     datalist.dataProvider= dp
     datalist.addEventListener(Event.CHANGE, gridItemSelected);    
   } 
  }
   public function gridItemSelected(e:Event):void { 
   getmp3name.text =e.target.selectedItem.label
   getmp3url.text =e.target.selectedItem.data;           
   downloadName=e.target.selectedItem.label
   downloadData=e.target.selectedItem.data
  }
  //下载歌曲函数
  public function downloadmp3():void {
     fileName= downloadName+".mp3";
     downloadURL = new URLRequest();
     downloadURL.url = downloadData;
     file = new FileReference();
     downconfigureListeners(file);
     file.download(downloadURL, fileName);
   }
  private function downconfigureListeners(dispatcher:IEventDispatcher):void {
   dispatcher.addEventListener(Event.CANCEL, cancelHandler);
   dispatcher.addEventListener(Event.COMPLETE, downcompleteHandler);
   dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
   dispatcher.addEventListener(Event.OPEN, openHandler);
   dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
   dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
   dispatcher.addEventListener(Event.SELECT, selectHandler);
  }
  
  private function cancelHandler(event:Event):void {
   msglabel1.text="取消了选择!"
  }
  
  private function downcompleteHandler(event:Event):void {
   msglabel1.text="下载完成!"
  }
  
  private function ioErrorHandler(event:IOErrorEvent):void {
   msglabel1.text="下载停止!"
  }
  
  private function openHandler(event:Event):void {
   msglabel1.text="开始下载!"
  }
  private function progressHandler(event:ProgressEvent):void {
   var file:FileReference = FileReference(event.target);
   msglabel1.text="正在下载:"  + event.bytesLoaded+"k"
  }
  
  private function securityErrorHandler(event:SecurityErrorEvent):void {
   msglabel1.text="无法获得下载地址!"
  }
  
  private function selectHandler(event:Event):void {
   var file:FileReference = FileReference(event.target);
   msglabel1.text="选择了:" + file.name
  }
  //跳转到
  public function gotoPage():void {
   page=Number(pagetxt.text)
   URLLoaderExample();
  }
  //上一页
  public function upClick():void {
    if (page>1) {
     page--;
     URLLoaderExample();
    }
  }
  //下一页
  public function downClick():void {
    page++;
    URLLoaderExample();
  }
  //字符串数据流处理
  public function search(str0,str1,str2){
    var i:Number = str1.length;
    var link:Array = new Array();
    var a:String = str0.toString();
    var j:Number = 0;
   do {
   var k:String = a.indexOf(str1, 0);
    if (k == -1) {
     break;
    }
    var l :String= a.indexOf(str1, 0)+i;
    var m :String= a.indexOf(str2, l);
    link[j] = a.slice(l, m);
    var n:String = a.indexOf(link[j], 0);
    a = a.slice(l);
    j = j+1;
    } while (k != -1);
    return link;
  }  
 ]]>
</mx:Script>
 <mx:Button x="197" y="10" label="开始搜索" click="searchClick()" fontSize="12"/>
 <mx:Button x="436" y="10" label="上一页" click="upClick()" fontSize="12" id="up"/>
 <mx:Button x="509" y="10" label="下一页" click="downClick()" fontSize="12" id="down"/>
 <mx:Button x="363" y="10" label="跳转到" click="gotoPage()" fontSize="12" id="gotopage"/>
 <mx:Button x="582" y="10" label="试听歌曲" click="playmusic()" fontSize="12" id="testpaly"/>
 <mx:Button x="668" y="10" label="下载歌曲" click="downloadmp3()" fontSize="12" id="download"/>
 <mx:TextInput x="0" y="10" id="keyword" text="周杰伦" fontSize="12" width="196"/>
 <mx:TextInput x="282" y="10" id="pagetxt" fontSize="12" width="72"/>
 <mx:TextInput x="75" y="40" id="getmp3name" fontSize="12" width="200"/>
 <mx:TextInput x="363" y="40" id="getmp3url" fontSize="12" width="100%"/>
 <mx:DataGrid x="75" y="70" height="100%" width="923" id="datalist" fontSize="12">
  <mx:columns>
   <mx:DataGridColumn  width="200" headerText="歌曲名称" dataField="label"/>
   <mx:DataGridColumn  headerText="歌曲地址" dataField="data"/>
  </mx:columns>
 </mx:DataGrid>
 <mx:Label id="msglabel1" fontSize="12" x="754" y="12" width="244"/>
 <mx:Label text="当前选择:" id="msglabel0" fontSize="12" width="67" x="2" y="42"/>
 <mx:Label text="下载地址:" id="msglabel2" fontSize="12" width="80" x="279" y="42"/>
 <mx:List x="0" y="72" width="75" height="100%" id="signerlist" fontSize="12"></mx:List>
</mx:WindowedApplication>
 
 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值