0

以下のプリローダー 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

4

3 に答える 3

0

オンラインでは機能していないがローカルでは機能している場合は、ここから始めるとよいでしょう。

  1. アプリケーションが考えている場所にファイルがあることを確認してください
  2. フラッシュからエクスポートするときは、ネットワーク設定がローカルではなくリモートに設定されていることを確認してください。これを確認するには、[公開設定]、[フラッシュ]タブの順に移動し、[ローカル再生セキュリティ]と表示されている[詳細]セクションに移動します。

ローダーの進行状況/完了イベントだけでなく、エラーをリッスンすることをお勧めします。そうすれば、これらの問題をより簡単に追跡できます。

IOErrorEvent.IO_ERRORSecurityErrorEvent.SECURITY_ERRORリスナーは上記の考えられる問題を確認します。

于 2012-07-19T23:32:04.507 に答える
0

問題は、オンラインでアップロードすると、プログラムがアップロード先のサイトの FTP で movie.swf に到達しようとすることです。movie.swf を自分のドメインにコピーして、その URL を貼り付けます。例えば:

l.load(new URLRequest("http://mysite.com/movie.swf"));
于 2012-07-20T13:15:29.703 に答える
0

サーバーの .htaccess ファイルにアクセスできる場合、ソリューションはうまく機能しますが、そうでない場合はどうでしょう。HTTP リクエストにヘッダーを追加することで、これを回避できることがわかりました。デフォルトでは、IE には「Accept-Encoding」という要求ヘッダーがあり、「gzip,deflate」に設定されています。これをオーバーライドして、その値を「x」などに設定できます。「gzip」以外

例えば。

var header:URLRequestHeader = new URLRequestHeader("Accept-Encoding", "xxx");

var request:URLRequest = new URLRequest(" http://www.whatever.com/myfile.zip "); request.requestHeaders = [ヘッダー];

var loader:Loader = new Loader(); loader.load(リクエスト);

于 2013-09-02T16:16:28.557 に答える