4

サイトのメインファイルを表す大きな(700kb)Flex.swfファイルがあります。

パフォーマンステストのために、Amazon S3ホスティング(特定のビデオと大きなファイルですでに実行済み)に移行してみたかったのです。

私は先に進んでそれを行い、リモートの.swfを参照するようにhtmlページを更新しました。

Flashは、HTMLページのルートに関係なく、リソースにアクセスする.swfファイルに関連するすべてのリソースをロードすることがわかりました。そのため、私のリソースは現在、リモートサイト(リソースが存在しない場所)からロードされています。

私ができる2つの明らかなことがあります:*すべてのリソースをリモートでコピーします(私は今テストしているので、これの準備はできていません)*新しいパスを導出するために.swfがアクセスするすべてのURLに抽象化レイヤーを追加します。

私は本当にスイッチをフリックして、「[元のサーバー]に関連するすべてをロードする」と言いたいです。

そのようなものは存在しますか、それともすべてのパスを完全に修飾しない限り、リモートマシンからすべてをロードするのに行き詰まりますか?

私は次のような「ハッキー」を避けたい:サブクラスの画像とそこのパスをハックする

4

2 に答える 2

1

URLの前にスラッシュを追加します。これは、現在のフォルダーではなく、ドメインを基準にして読み込まれる必要があります。

foo.load('/like/this/image.jpg')

これは少し速くて汚いです、クエリ文字列(または基本パラメータ)を介して「相対的な」URLを供給することははるかに柔軟です。

于 2008-10-21T07:11:08.793 に答える
0

baseSWF の埋め込み/オブジェクト タグのパラメーターを指定してみてください。base理論的には、ロード用の相対パスを解決するために使用される基本パスを定義しますが、値が SWF がある場所とは別のサーバーを指している場合に機能するかどうかはわかりません。

埋め込み/オブジェクト パラメータに関するドキュメントはこちらを参照してくださいbase真ん中の「 」まで下にスクロールします。

それがうまくいかない場合、私が見たもう 1 つのことは、カスタム ベース パスをflashvars. 次に、SWF 内で、そのベース パスが定義されているかどうかを確認し、定義されている場合は、ロードする前に相対 URL の前に追加します。

于 2008-10-21T01:52:19.750 に答える