Flex: как я могу использовать @ContextRoot в Button или LinkButton - PullRequest
0 голосов
/ 14 мая 2010

Я пытаюсь создать кнопку, которая будет просто ссылаться на корневой контекст. Я заметил, что flex имеет атрибут @ContextRoot, который работает только в определенных случаях. Например, если я попытаюсь использовать его в следующем mxml:

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

Я получаю следующую ошибку: Ошибка: атрибуты не могут быть вызваны.

Кажется, я нигде не могу найти объяснение этой технике, есть другой способ?

Спасибо за помощь! Dave

Ответы [ 2 ]

1 голос
/ 14 мая 2010

Ну, самый чистый способ, который я нашел, это использовать функцию в блоке скрипта, а не использовать @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

0 голосов
/ 15 июня 2010

Спасибо http://devgirl.wordpress.com/ за это решение! Я думаю, что это лучше, чем решение Application.application.url:

Использовать элемент управления HTTPService:

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

А затем в Action Script:

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

работает как шарм!

...