动作2:MovieClipLoader.onLoadProgress在生产中未触发

时间:2020-03-06 14:25:48  来源:igfitidea点击:

我正在Flash CS3中工作,目标是ActionScript 2,并且正在编写图像预加载器。当我在打开下载模拟的情况下测试影片时,一切正常,并且预加载器成功更新了我制作的下载进度栏。但是,当我将电影上传到Web服务器时,它的行为几乎就像是MovieClipLoader.onLoadProgress事件直到上传结束才触发一样,因为电影坐在那里几秒钟而没有任何通知,然后出现了一个提示。活动突然爆发,我的预加载器从0迅速变为100%。以前有人遇到过这种行为吗?如果是的话,我在做什么错呢?谢谢!

解决方案

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

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

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

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

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

经过大量测试,我最终完全重组/重写了预加载器的工作方式,这解决了我的问题。我以为最终图像的加载与事件的触发之间存在一定的滞后,实际上是(由于我仍然不完全理解的原因)更新了预加载器剪辑的代码并未在事件发生时运行被触发,但是一直等到系列中的最后一张图片开始加载才能开始工作。我将用于更新加载进度的代码从预加载器影片剪辑(正在查看_root级别的进度变量并在enter帧中进行更新)内部移动到onLoadProgress事件本身中。每个发表评论的人都非常感谢快速回复,当我达到15岁时,我会投票支持两个答案,因为它们很有帮助,即使不是我一直在寻找的答案也是如此。