我使用URLStream通过超文本传输协议下载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;
}
}
}我尝试过不同的缓冲区大小。我甚至注释掉了进度事件,它仍然是滞后的。显然,我关闭了所有内容,并删除了downloadComplete函数中的侦听器。是否有人在回调中删除了进度事件侦听器,并将其添加回回调的末尾?我真的被难住了,尤其是它在Windows上运行得很好。感谢您的帮助或建议。
发布于 2009-12-23 01:34:38
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
第一个链接有一个解决方案,我还没有尝试修改帧率.other,那么flash player 10应该有改进的性能,我会尝试在新发布的air (2测试版)上运行应用程序,看看性能是否提高
https://stackoverflow.com/questions/1870354
复制相似问题