0

実行時にさまざまな SWF をロードする AS3 アプリケーションがあります。使用されているローディング アニメーションには、ターゲット SWF がブラウザ キャッシュにある場合は表示したくない、かなり長いインとアウトのアニメーションがあります。

したがって、現時点では、基本的な方法でGreensock のSWFLoaderを使用して、必要に応じて各 SWF が読み込まれます。

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();ことですが、R&D に入る前に、誰かがすでに同様のことを行っているかどうかを尋ねたいと思いました。

私がこれまでに持っていたいくつかの考え:

  • AS3 にロードされたものを追跡するだけでは十分ではありません。ユーザーがキャッシュをクリアすると、低速の接続でインジケーターなしで大きな SWF をロードしたままになる可能性があるためです。
  • LoaderItem.httpStatusLoaderItem.auditSize()の組み合わせは調査する価値があるでしょうか?
  • Greensock クラスの代わりに検討すべき AS3 用のより良い読み込みフレームワークはありますか?
  • 理想的には、何ヶ月も離れている可能性のあるセッションにまたがる何らかのバージョン検出も行いたいと思いますが、一度に 1 ステップずつです。
4

1 に答える 1

2

HTTP リクエストを実行すると、レスポンスに HTTPStatus プロパティが表示されます。AS3 では、次のことを確認する必要があります。

HttpStatusEvent.status == 304

そしてhttpStatus、greensock ライブラリで。

基本的に 304 コードは、ユーザーが要求したリソースに対してサーバー側で変更が行われていないことを意味します。これにより、最終的にリソースがキャッシュにあるという結論に至ります。

アップデート

これがニーズに合わない場合は、アニメーションを再生するかどうかを示す変数を Cookie またはセッション変数に保存してみてください。

于 2011-07-24T12:10:29.750 に答える