Flashキャッシュに大きなサウンドアセットを作成することは可能ですか?
質問
サーバーから音楽ファイルとサウンドファイルをストリーミングするFlash(AS3 / Flex SDK / MXMLC)でゲームを作成しました。
帯域幅が心配です-オーディオコンポーネントは3MB近くあります。ゲームが人気を博した場合、帯域幅料金は本当に高くなります。
同じPCにゲームがロードされるたびにストリーミングするのではなく、ダウンロードしたオーディオコンポーネントをFlashにキャッシュする方法はありますか?
SharedObjects(" cookies")については知っていますが、そこにバイナリデータを保存する方法があるとは思いません...またはありますか?
解決
" stream" と言う場合、HTTPを介したプログレッシブダウンロードを意味すると想定しています。
最初に、目標に合った適切なキャッシングヘッダーを使用して、メディアアセットがサーバーから送信されるようにする必要があります。これらがキャッシュフレンドリーでない場合、ファイルはキャッシュされません。また、クエリ文字列は通常、クライアント側のキャッシュを防ぎます。
この点で、Flashプレーヤーについて魔法のようなものは何もありません。すべてが単なる昔ながらのWebページであるかのように、すべてが機能するはずです。
大規模で静的なメディア資産を安価なもの( Amazon S3 または CloudFront )。これにより、アプリケーションロジックを必要としないバルク転送のコストを削減できます。 。
コメントに触発された更新:クエストでフォローするための可能な概要は次のとおりです...
- 最初に行われるキャッシュと行われないキャッシュの種類を把握する
- ブラウザのキャッシュをクリア
- ゲームのユースケースを確認する
- 同じコンテンツが使用されるのを期待して、もう一度調べてください
- Webサーバーのログファイルを検査します。要求の最初のグループには、すべてHTTP 200応答コードが必要です。リクエストの2番目のグループの場合、「キャッシュ可能」既に配信されたファイルのリクエストには、 nothing またはHTTP 304(キャッシュされたコンテンツが有効かどうかを確認するためのリクエストのみ)が表示されます。キャッシュが行われていません
- キャッシュの詳細
- TamperDataなどのFireFoxプラグインをインストールし、キャッシュヘッダーを監視します
- 仕様を読んで、知ってください。 RFC 2616
- 実験
コンテンツを既にキャッシュしていても、気づかなかったとしても驚かないでしょう!