我在網上發現了幾個腳本,並將它們結合在一起。 我想從網上下載文件到我的本地硬盤。 任何想法我做錯了什麼?AS3:URLStream將文件保存到桌面?
var fs:FileStream;
var stream:URLStream;
var _output:Boolean = false;
init();
startDownload('http://www.teachenglishinasia.net/files/u2/purple_lotus_flower.jpg');
function init() {
stream = new URLStream();
stream.addEventListener(ProgressEvent.PROGRESS, _dlProgressHandler);
stream.addEventListener(Event.COMPLETE, _dlCompleteHandler);
stream.addEventListener(Event.OPEN, _dlStartHandler);
fs = new FileStream();
fs.addEventListener(OutputProgressEvent.OUTPUT_PROGRESS, _writeProgressHandler)
}
function startDownload(url:String):void {
//fs.openAsync(lfile, FileMode.APPEND);
_output = false;
stream.load(new URLRequest(url));
}
function downloadComplete():void {
var fileData:ByteArray = new ByteArray();
stream.readBytes(fileData,0,stream.bytesAvailable);
fs.writeBytes(fileData,0,fileData.length);
fs.close();
}
function writeToDisk():void {
_output = false;
var fileData:ByteArray = new ByteArray();
stream.readBytes(fileData,0,stream.bytesAvailable);
fs.writeBytes(fileData,0,fileData.length);
}
function _dlProgressHandler(evt:ProgressEvent):void {
if(_output){
writeToDisk();
}
}
function _dlCompleteHandler(evt:Event):void {
downloadComplete();
}
function _dlStartHandler(evt:Event):void {
_output = true;
}
function _writeProgressHandler(evt:OutputProgressEvent):void{
_output = true;
}
Flash不斷告訴我:錯誤:錯誤#2029:此URLStream對象沒有打開的流。但是,與網頁的連接熄滅。
任何想法? 謝謝你的幫助!
@SébastienNussbaumer你應該已經給出了評語,讓帕斯卡爾知道這個 – 2013-08-06 07:40:10
嗨,有人只是試圖修改關於「糾正錯誤的答案:waitingForDataToWrite總是假的,進展情況將不會派遣和下載的文件會完全回憶起來「但它可能被拒絕了(不是我)。隨時給我發送更新的代碼,以便我可以修改自己(並信任作者)pascal.dalfarra [at] gmail.com – Pascal 2013-08-06 08:25:25
你的意思是[this one](http://stackoverflow.com/review/suggested-edits/2662320) )?它被接受了,但對我來說,聽起來非常嚴重,寧願與你討論而不直接批准它。如果是後續行動,不幸的是,被拒絕的建議幾乎無法找到,除了在審覈隊列中。這裏還有另外一個也是被@Sébastien之前被拒絕的:http://stackoverflow.com/review/suggested-edits/2662084 – 2013-08-06 08:28:32