0

私は、主に ASP.NET ベースのプロジェクトに取り組んでいます。メイン プロジェクトは、さまざまなクライアントの複数の場所にデプロイされることを意図しているため、1 つのクライアントが website.com/client1 に配置され、別のクライアントが website.com/client2 に配置される場合があります。アプリケーション内では、アプリケーション ルート オペレータを定期的に使用し~て、リソースへのパスを取得します。

また、そこにデプロイされる一連の Flex アプリケーションもあり、その多くは ASP.NET アプリケーション内の Web サービスに依存しています。私が求めているのは、アプリケーション ルートに関連するサービスを参照する方法です。以下は、2 つのクライアント展開のいくつかのファイルの場所の例です。

  • クライアントA
    • website.com/clientA/swf/FlexApplication.swf
    • website.com/clientA/services/webService.asmx
  • クライアント B
    • website.com/clientB/swf/FlexApplication.swf
    • website.com/clientB/services/webService.asmx

FlexApplication と webService はどちらもまったく同じなので、私がやりたいことは Flex コードで次のようになります。

var myService:CustomService = new CustomService(~/services/webService.asmx);
myService.callMethod("Test");

通常の理由から、相対パスの使用は避けたいと思います。これを行う良い方法、またはルート URL を ASP.NET からフレックス アプリケーションに渡す良い方法はありますか? 前もって感謝します。

4

3 に答える 3

1

アプリケーションルートに相対的

Flex は、ASP.NET アプリケーションのアプリケーション ルートについて何も知りません。Flex アプリが認識しているのは、提供元の URL だけです。ページの URL はわかりません。ページの URL と SWF の URL は同じではないことに注意してください。

ディレクトリ構造を考えると、SWF の URL を使用して必要な情報を取得できるようです。

Flex 3 アプリケーションでは、Application タグのurlプロパティを使用できます。

(Application.application as Application).url 

Flex 4 Spark アプリケーションでは、アプリケーション タグのurlプロパティも使用できますが、別の方法で取得する必要があります。

(FlexGlobals.topLevelApplication as Application).url 

その後、URLUtilsで解析して、ディレクトリ構造を取得できます。おそらく、何らかの方法でグローバル変数として Flex アプリケーションに保存し、それを使用して、リモート サーバーに対して行うサービス呼び出しの URL を作成します。

于 2011-02-21T21:05:27.113 に答える
0

この便利な小さなユーティリティを使用して、.swf内のjavascriptを介してURL情報を取得します。

http://www.flexpasta.com/index.php/category/utility-classes-that-help-you-deal-with-string-numbers-arrays-and-objects-in-actionscript/

于 2011-02-21T21:14:19.150 に答える