URLStream& OSX滞后

时间:2009-12-08 22:32:12

标签: flex actionscript-3 air

我正在使用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上工作正常。感谢您提供任何帮助或建议。

1 个答案:

答案 0 :(得分:0)

Adob​​e的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)上运行应用程序并查看性能改进

相关问题