package KugouPlayer.KRC {
import flash.events.*;
import flash.utils.*;
import KugouPlayer.Download.*;
public class KrcDirectDown {
private var successfun:Function;
private var errorfun:Function;
public var myLyric:Object;
private var newkeyBytes:Array;
private var _httpReq:HttpRequest;
public function KrcDirectDown(_arg1:Function, _arg2:Function){
this.newkeyBytes = [64, 71, 97, 119, 94, 50, 116, 71, 81, 54, 49, 45, 206, 210, 110, 105];
super();
this._httpReq = new HttpRequest();
this.successfun = _arg1;
this.errorfun = _arg2;
}
public function Load(_arg1:String, _arg2:int, _arg3:String):void{
trace(((((("Load!======加载歌词==========" + _arg1) + ",") + _arg2) + ",") + _arg3));
var _local4:String = KRCGlobalConfig.krcDwonURL;
_local4 = (_local4 + ("?keyword=" + escape(_arg1)));
_local4 = (_local4 + ("&timelength=" + _arg2));
_local4 = (_local4 + ("&type=" + 1));
_local4 = (_local4 + ("&cmd=" + 200));
_local4 = (_local4 + ("&time=" + new Date().getTime()));
_local4 = (_local4 + ("&hash=" + _arg3));
this.myLyric = new Object();
this.myLyric.type = 1;
this._httpReq.Get(_local4, this.loaderCompleteHandler, this.error2Handler, HttpRequest.BINARY);
}
public function loaderCompleteHandler(_arg1:ByteArray):void{
var result:* = _arg1;
trace(("loaderCompleteHandler result==" + result.length));
var krcBytes:* = new ByteArray();
result.position = 4;
result.readBytes(krcBytes);
var l:* = krcBytes.length;
var i:* = 0;
while (i < l) {
krcBytes[i] = (krcBytes[i] ^ this.newkeyBytes[(i % this.newkeyBytes.length)]);
i = (i + 1);
};
try {
krcBytes.uncompress();
} catch(error:SecurityError) {
errorfun("uncompressError");
return;
};
krcBytes.position = 0;
this.myLyric.dataStr = krcBytes.readUTFBytes(krcBytes.length);
trace(("loaderCompleteHandler==" + this.myLyric.dataStr));
this.successfun();
}
public function error2Handler(_arg1:String):void{
trace("歌词下载出错error2Handler");
this.errorfun("downError");
}
}
}//package KugouPlayer.KRC