0

我有一个在运行时加载各种 SWF 的 AS3 应用程序。正在使用的加载动画具有相当长的进出动画,如果目标 SWF 位于浏览器缓存中,我不想显示该动画。

因此,目前每个 SWF 都根据需要使用 Greensock 的SWFLoader以基本方式加载:

var context:LoaderContext = new LoaderContext();
context.applicationDomain = ApplicationDomain.currentDomain;
loader = new SWFLoader("mySWF.swf", {name:"sectionLoader",context:context,auditSize:true,onOpen:onLoadInit,onProgress:onLoadProgress, onComplete:onCompleteLoadHandler, onError:onLoadErrorHandler});
loader.load();

我的目标是在调用loader.load();以确定加载操作是否需要请求超出浏览器缓存之前做一些事情,但在我进入研发之前,我想我会问是否有人已经做过类似的事情。

到目前为止,我还有一些想法:

  • 仅仅跟踪在 AS3 中加载的内容是不够的,因为如果用户清除他们的缓存,他们可能会在没有指示符的慢速连接上加载大型 SWF。
  • LoaderItem.httpStatusLoaderItem.auditSize()的组合是否值得研究?
  • 是否有更好的 AS3 加载框架,而不是 Greensock 类?
  • 理想情况下,我更希望有某种版本检测来跨越可能相隔数月的会话,但一次一步。
4

1 回答 1

2

当您执行任何 HTTP 请求时,响应会出现 HTTPStatus 属性。在 AS3 中,您只需要检查是否

HttpStatusEvent.status == 304

httpStatus在greensock库中。

基本上 304 代码意味着服务器端没有对用户请求的资源进行任何更改。这最终导致资源在缓存中的结论。

更新

如果这不符合您的需要,请尝试在 Cookie 或 Session 变量中是否播放动画时存储一些变量。

于 2011-07-24T12:10:29.750 回答