1

我在 Flash CS3 中工作,目标是 Actionscript 2,我正在编写一个图像预加载器。当我打开下载模拟测试电影时,一切正常,我的预加载器成功更新了我制作的下载进度条。但是,当我将电影上传到我的网络服务器时,它几乎表现得好像 MovieClipLoader.onLoadProgress 事件直到上传结束才触发,因为电影在没有通知的情况下在那里下载了几秒钟,然后有一个突然爆发的活动,我的预加载器非常迅速地从 0 变为 100%。以前有没有人遇到过这种行为,如果是这样,我做错了什么?

4

4 回答 4

1

我建议使用像 Charles ( http://www.charlesproxy.com/ ) 这样的调试代理来查看文件是如何从您的服务器下载的(例如,在下载开始之前是否存在高延迟,需要多少秒实际采取传输数据)。这样您就可以更好地查看预加载器是否准确地反映了从服务器传输的数据。

于 2008-09-19T12:58:13.843 回答
1

您是否在不同的浏览器中尝试过?我相信 Flash 至少在某些情况下会使用浏览器下载文件。Firefox 可能正在下载文件而不通知 Flash,然后将其全部发送到 Flash。我还没有看到 FF 自己这样做,但扩展程序可能会拦截下载。

我相信我唯一一次看到像以前那样突然发生的进展是当我得到一个缓存副本而不是重新下载它时。但是,由于您看到的是实际下载,我猜这不是您得到的。

在 IE 中尝试一下,看看是否有相同的行为。

于 2008-09-19T13:31:44.340 回答
0

感谢您的快速回复马特。我以前从未听说过 Charles,但它似乎是一个非常强大的工具。出于我的目的,我还可以在 Firefox 中使用 Firebug 的 Net 工具查看文件获取请求和进度。Charles 和 Firebug 都显示正在请求并成功下载图像,并且在 flash 电影出现响应并更新加载栏/fire onLoadProgress 之前的几秒钟内,所有图像都已完成。

于 2008-09-19T13:19:28.863 回答
0

经过大量测试,我最终完全重组/重写了预加载器的工作方式,这解决了我的问题。我认为最终图像的加载和事件触发之间的一些滞后实际上是(由于我仍然不完全理解的原因)更新我的预加载器剪辑的代码没有在事件发生时运行被解雇,而是等到系列中的最后一张图像开始加载才能开始工作。我将更新加载进度的代码从预加载器影片剪辑(它正在查看一些 _root 级别的进度变量并在输入帧上更新自身)移动到 onLoadProgress 事件本身。评论的每个人都非常感谢您的快速回复,一旦我达到 15 岁,我会投票赞成您的两个答案,因为它们很有帮助,

于 2008-09-24T18:31:23.673 回答