Flex:如何在Button或LinkBut​​ton中使用@ContextRoot

时间:2010-05-13 20:39:22

标签: flex url button hyperlink contextroot

我正在尝试创建一个简单链接回上下文根的按钮。我注意到flex有一个@ContextRoot属性,似乎只在某些情况下有用。例如,如果我尝试在以下mxml中使用它:

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

我收到以下错误:错误:属性不可调用。

我似乎无法在任何地方找到这种技术,是否有另一种方式?

感谢您的帮助! 戴夫

2 个答案:

答案 0 :(得分: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

[关于传递参数的Adobe帮助文档]

-Dave

答案 1 :(得分:0)

感谢http://devgirl.wordpress.com/这个解决方案!我认为它比Application.application.url解决方案更好:

使用HTTPService控件:

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

然后在Action Script中:

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

就像一个魅力!