Flex: Como posso usar o @ContexTroot em um botão ou linkbutton
-
26-09-2019 - |
Pergunta
Estou tentando criar um botão que simplesmente se vincule à raiz do contexto. Percebi que o Flex possui um atributo @ContexTroot que parece funcionar apenas em certos casos. Por exemplo, se eu tentar usá -lo no seguinte MXML:
<mx:Button label="Back to Root" click="navigateToURL(new URLRequest(@ContextRoot()), '_parent')"/>
Recebo o seguinte erro: Erro: os atributos não são chamáveis.
Não consigo encontrar essa técnica explicada em algum lugar, existe outra maneira?
Obrigado pela ajuda! Dave
Solução 2
Graças a http://devgirl.wordpress.com/ Para esta solução! Eu acho que é melhor que o aplicativo.Application.url Solução:
Use o controle HTTPService:
<mx:HTTPService id="home" url="@ContextRoot()"/>
E então no script de ação:
navigateToURL(new URLRequest(home.url),"_parent");
Funciona como um encanto!
Outras dicas
Bem, a maneira mais limpa que encontrei foi usar uma função no bloco de scripts e não usar @ContexTroot como:
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");
}
Eu diria que há uma maneira mais fácil de usar o @ContexTroot, para que outras respostas que não usem caminhos relativas sejam bem -vindos!
Graças a esses sites pela ajuda:
http://blog.devsandbox.co.uk/?p=174
Adobe Help Docs sobre argumentos passantes
-Dave