- 论坛徽章:
- 0
|
本帖最后由 nsnake 于 2011-03-04 15:24 编辑
注意看红色字体部分
package baidu.mp3.fm.data
{
import baidu.mp3.fm.event.*;
import flash.events.*;
import flash.net.*;
public class ChannelDataAccessor extends EventDispatcher
{
public static var CHANNEL_DATA_PATH:String = "http://fm.mp3.baidu.com/xml/";
public static var CHANNEL_LIST_DATA_PATH:String = CHANNEL_DATA_PATH + "suixinting_channel.xml";
public function ChannelDataAccessor()
{
return;
}// end function
public function loadChannelList() : void
{
var loader:URLStream;
loader = new URLStream();
loader.addEventListener(Event.COMPLETE, function (event:Event) : void
{
var _loc_2:* = loader.readMultiByte(loader.bytesAvailable, "gb2312");
var _loc_3:* = new XML(_loc_2);
var _loc_4:* = getChannelListOperated(_loc_3);
var _loc_5:* = new DataEvent(DataEvent.LOAD_COMPLETE);
new DataEvent(DataEvent.LOAD_COMPLETE).data = _loc_4;
dispatchEvent(_loc_5);
return;
}// end function
);
loader.addEventListener(IOErrorEvent.IO_ERROR, function (event:Event) : void
{
var _loc_2:* = new DataEvent(DataEvent.LOAD_ERROR);
dispatchEvent(_loc_2);
return;
}// end function
);
loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, function (event:Event) : void
{
var _loc_2:* = new DataEvent(DataEvent.LOAD_ERROR);
dispatchEvent(_loc_2);
return;
}// end function
);
var url:* = CHANNEL_LIST_DATA_PATH;
loader.load(new URLRequest(url));
return;
}// end function
public function loadChannel(param1:String) : void
{
var loader:URLStream;
var id:* = param1;
loader = new URLStream();
loader.addEventListener(Event.COMPLETE, function (event:Event) : void
{
var _loc_2:* = loader.readMultiByte(loader.bytesAvailable, "gb2312");
var _loc_3:* = new XML(_loc_2);
var _loc_4:* = getChannelDataOperated(id, _loc_3);
var _loc_5:* = new DataEvent(DataEvent.LOAD_COMPLETE);
new DataEvent(DataEvent.LOAD_COMPLETE).data = _loc_4;
dispatchEvent(_loc_5);
return;
}// end function
);
loader.addEventListener(IOErrorEvent.IO_ERROR, function (event:Event) : void
{
var _loc_2:* = new DataEvent(DataEvent.LOAD_ERROR);
dispatchEvent(_loc_2);
return;
}// end function
);
loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, function (event:Event) : void
{
var _loc_2:* = new DataEvent(DataEvent.LOAD_ERROR);
dispatchEvent(_loc_2);
return;
}// end function
);
var url:* = CHANNEL_DATA_PATH + id + ".xml" + "?.r=" + Math.random();
loader.load(new URLRequest(url));
return;
}// end function
private function getChannelListOperated(param1:XML) : Object
{
var _loc_6:XML = null;
var _loc_7:String = null;
var _loc_8:String = null;
var _loc_9:String = null;
var _loc_10:String = null;
var _loc_11:int = 0;
var _loc_2:Object = {};
var _loc_3:Array = [];
var _loc_4:Array = [];
var _loc_5:* = param1.channel_info;
for each (_loc_6 in _loc_5)
{
_loc_7 = _loc_6.channel_xml.toString();
_loc_8 = _loc_7.substr(0, _loc_7.length - 4);
_loc_9 = _loc_6.channel_name.toString();
_loc_10 = _loc_6.catalog.toString();
_loc_11 = _loc_3.indexOf(_loc_10);
if (_loc_11 == -1)
{
_loc_3.push(_loc_10);
_loc_11 = _loc_3.length - 1;
_loc_4.push([]);
}
_loc_4[_loc_11].push({id:_loc_8, name:_loc_9});
}
_loc_2.type = _loc_3;
_loc_2.list = _loc_4;
return _loc_2;
}// end function
private function getChannelDataOperated(param1:String, param2:XML) : Object
{
var _loc_6:XML = null;
var _loc_7:Object = null;
var _loc_3:Object = {};
_loc_3.id = param1;
var _loc_4:Array = [];
var _loc_5:* = param2.songinfo;
for each (_loc_6 in _loc_5)
{
_loc_7 = {};
_loc_7.name = _loc_6.song.toString();
_loc_7.artist = _loc_6.artist.toString();
_loc_7.extra = _loc_6.extra.toString();
_loc_7.album = _loc_6.album.toString();
_loc_7.cover = _loc_6.cover.toString();
_loc_7.detailUrl = _loc_6.detailurl.toString();
_loc_7.detailUrl = _loc_7.detailUrl.replace(/\+/g, "%2B");
_loc_4.push(_loc_7);
}
_loc_3.list = _loc_4;
return _loc_3;
}// end function
}
} |
|