我正在使用URLStream通过HTTP下载30-80mb文件。它在Windows XP上下载得很好,但在OSX中却非常滞后。有人有类似的问题吗?这是代码的一些片段。
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上工作正常。感谢您提供任何帮助或建议。
答案 0 :(得分:0)
Adobe的Jira上有一个关于Mac上Flash Player性能不佳的漏洞。 这个bug仍然是开放的。有关该问题的网络讨论: http://www.gskinner.com/blog/archives/2009/05/idle_cpu_usage.html http://blogs.adobe.com/air/2009/05/performance_tips_for_adobe_air.html
第一个链接有一个解决方案,我还没有尝试过使用帧率。然后,flash播放器10应该有改进的性能,我会尝试在新发布的空气(2 beta)上运行应用程序并查看性能改进