0

コンテキストルートに単純にリンクするボタンを作成しようとしています。flex には、特定の場合にのみ機能するように見える @ContextRoot 属性があることに気付きました。たとえば、次の mxml で使用しようとすると:

<mx:Button label="Back to Root" click="navigateToURL(new URLRequest(@ContextRoot()), '_parent')"/>

次のエラーが表示されます: エラー: 属性は呼び出し可能ではありません。

このテクニックがどこにも説明されていないようです。別の方法はありますか?

助けてくれてありがとう!デイブ

4

2 に答える 2

1

私が見つけた最もクリーンな方法は、次のように @ContextRoot を使用せずに、スクリプト ブロックで関数を使用することでした。

private function goBacktoHompage():void
 {
  baseURL = Application.application.url;
  var tempUrl:String = baseURL.substr(7,baseURL.length);
  var tempUrlArr:Array = tempUrl.split("/");
  var contextRoot:String = tempUrlArr[1];
  var u:URLRequest = new URLRequest("/" + contextRoot);
  navigateToURL(u,"_parent");
 }

@ContextRoot を使用できる簡単な方法があると思いますので、相対パスを使用しない他の回答は大歓迎です!

助けてくれたこれらのサイトに感謝します:

http://blog.devsandbox.co.uk/?p=174

[引数の受け渡しに関する Adob​​e ヘルプ ドキュメント]

-デイブ

于 2010-05-14T15:10:41.297 に答える
0

この解決策を提供してくれたhttp://devgirl.wordpress.com/に感謝します! Application.application.url ソリューションよりも優れていると思います。

HTTPService コントロールを使用します。

<mx:HTTPService id="home" url="@ContextRoot()"/> 

そして、アクション スクリプトで:

 navigateToURL(new URLRequest(home.url),"_parent");

魔法のように機能します!

于 2010-06-14T20:06:19.947 に答える