0

我有一个小的 Flash 文件,它只加载并显示一个缩放以适合内容区域的图像。我们将这些与 javascript 库一起使用,因此我们在一个 html 页面上有多个实例(嵌入了 swfObject) 我一直在使用 MovieClipLoader 来加载 jpg,但它不再有效。

我们更新了服务器,据我所知,只有与缓存相关的相关内容发生了变化。以前总是重新加载所有图像和 swf。现在它们应该从缓存中加载。

我可以从萤火虫看到 swf 实际上正在加载 jpg 它只是不显示任何内容。这发生在许多浏览器/操作系统/闪存插件组合上。有时一些图像显示,有时没有。

moviecliploader 事件处理程序(onloadinit、onloaderror)中的代码永远不会运行。

任何关于如何使这项工作的想法将不胜感激。

4

3 回答 3

0

过去我在使用多个 MovieClipLoader 实例时遇到过麻烦。与您类似,一些加载器似乎超时,从不显示它们应该加载的图像。有人告诉我这是由于 HTTP 同时线程限制,据说一次下载两个(但从未得到确认)。

如果您在页面上使用多个 swf 文件,而不是使用一个主闪存来加载所有文件,则尤其如此。

我通过在 Flash 中创建一个简单的排队系统解决了这个问题,其中最多可以同时加载两个 movieClipLoader。无论何时完成,它都会触发下一次下载,依此类推,直到处理完所有下载。那效果很好。

于 2009-01-20T06:33:04.880 回答
0

我不能使用单个主闪光灯。我们需要为每个图像使用单独的闪存加载器。据我所知,不可能创建一个处理 1 到 N 个闪存加载程序的排队系统。

经过大量测试后,我发现当 Flash 加载时,第 1 帧中的动作根本没有运行,所以这似乎不是 MovieClipLoader 的错误。我添加了一个简单的代码,在舞台上绘制一条蓝线到第一帧,当加载失败时,这条线根本不会出现。

于 2009-01-20T07:39:23.107 回答
0

我找到了解决方案。

原来问题与缓存有关,但与 MovieClipLoader 无关。

我正在根据 Stage.width 和 Stage.height 缩放加载的图像。我发现 flash 有时会在短时间内给出 0 的宽度和高度。即使舞台上有可见的东西,这也可能发生。以前这不是问题,因为一旦加载图像,尺寸就正确了。现在,当图像来自缓存时,尺寸有时为 0。

解决方案是在 onEnterFrame 处理程序中检查舞台尺寸,并且仅在尺寸大于 0 的情况下继续加载

于 2009-01-20T14:05:13.390 回答