以下のプリローダー AS3 コードを使用しています。そして、それは機能していません!Flash で実行すると CS5.5 は正常に動作しますが、オンラインでは動作しません。
var l:Loader = new Loader();
l.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loop);
l.contentLoaderInfo.addEventListener(Event.COMPLETE, done);
l.load(new URLRequest("movie.swf"));
function loop(e:ProgressEvent):void
{
var perc:Number = e.bytesLoaded / e.bytesTotal;
percent.text = Math.ceil(perc*100).toString();
}
function done(e:Event):void
{
removeChildAt(0);
percent = null;
addChild(l);
}
問題と解決策を見つけました!
問題は、オンライン サーバーが Apache の mod_deflate オプションに対して gzip をオンにしているためです。
mod_deflate モジュールは、サーバーからの出力をネットワーク経由でクライアントに送信する前に圧縮できるようにする DEFLATE 出力フィルターを提供します。
そのため、movie.swf は gzip で圧縮されています。それが大きな問題です。
ここでの解決策:
サーバーのルート フォルダーにある .htaccess ファイルにコードを作成または挿入するだけです。
ファイルを作成する (またはこのコードを入れる) .htaccess
SetEnv no-gzip dont-vary
# Don't compress images/flash
SetEnvIfNoCase Request_URI \
\.(?:gif|jpe?g|png|swf|flv)$ no-gzip dont-vary
楽しんでください:P