代码之家  ›  专栏  ›  技术社区  ›  Corey

moviecliploader失败(与缓存有关)

  •  0
  • Corey  · 技术社区  · 16 年前

    我有一个小的flash文件,它只加载和显示一个按比例缩放的图像,以适应内容区域。我们在一个javascript库中使用这些,所以在一个HTML页面上有几个实例(嵌入了swfobject),我一直在使用moviecliploader来加载JPG,但它不再有效。

    我们更新了服务器,据我所知,唯一相关的改变是与缓存相关的。以前,所有图像和SWF都是重新加载的。现在应该从缓存中加载它们。

    我可以从Firebug中看到,SWF实际上正在加载JPG,它只是不显示任何内容。这发生在许多浏览器/OS/Flash插件组合上。有时一些图像显示,有时没有。

    moviecliploader事件处理程序(onloadinit,onloadError)中的代码从不运行。

    关于如何使这项工作的任何想法都将受到赞赏。

    3 回复  |  直到 16 年前
        1
  •  0
  •   sthg    16 年前

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

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

    我通过在flash中创建一个简单的排队系统来解决这个问题,在flash中最多可以同时加载两个moviecliploader。每当一个下载完成,它就会触发下一个下载,以此类推,直到所有的下载都被处理完毕。效果很好。

        2
  •  0
  •   Corey    16 年前

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

    经过大量测试,我发现在第1帧中的操作在flash加载时根本不运行,所以这看起来并不是moviecliploader错误。我添加了一个简单的代码,在第一帧的舞台上画一条蓝线,当加载失败时,这条线根本不会出现。

        3
  •  0
  •   Corey    16 年前

    我找到了解决办法。

    结果发现问题与缓存有关,但与moviecliploader无关。

    我正在根据stage.width和stage.height缩放加载的图像。我发现闪光有时会在短时间内给出0的宽度和高度。即使舞台上有看得见的东西,这种情况也可能发生。以前这不是问题,因为图像加载后尺寸是正确的。现在,当图像来自缓存时,维度有时为0。

    解决方案是检查OnInterFrame处理程序中的阶段维度,并且仅在维度为>0时继续加载。