Я использую URLStream для загрузки файлов размером 30-80 МБ по HTTP. Он отлично загружается в Windows XP, но очень отстает в OSX. У кого-то были подобные проблемы? Вот некоторые фрагменты кода.URLStream & OSX laggy
function startDownload():void
{
//opening file
var FileWriteStream:FileStream = new FileStream();
FileWriteStream.openAsync(DownloadingFile, FileMode.WRITE);
//adding listeners to stream
URLReadStream = new URLStream();
URLReadStream.addEventListener(ProgressEvent.PROGRESS, trackCurrentDownload);
URLReadStream.addEventListener(Event.COMPLETE, downloadComplete);
URLReadStream.addEventListener(IOErrorEvent.IO_ERROR, downloadError);
URLReadStream.load(DownloadURLRequest);
function trackCurrentDownload(event:ProgressEvent):void
{
//update progress bars
DownloadProgress.setProgress(event.bytesLoaded+resumeSize, event.bytesTotal);
if (URLReadStream.bytesAvailable > 2048 || event.bytesLoaded == event.bytesTotal)
{
//read stream & write bytes to file
var byteArray:ByteArray = new ByteArray();
URLReadStream.readBytes(byteArray, 0, URLReadStream.bytesAvailable);
FileWriteStream.writeBytes(byteArray, 0, byteArray.length);
byteArray = null;
}
}
}
Я пробовал разные размеры буфера. Я даже прокомментировал событие PROGRESS, и он все еще был лагги. Очевидно, я закрываю все &, чтобы удалить слушателей в функции downloadComplete. Кто-нибудь удалил прослушиватель событий PROGRESS в обратном вызове и добавил его обратно в конце обратного вызова? Я на самом деле тупик, особенно потому, что он отлично работает в Windows. Спасибо за любую помощь или предложения.