2010-05-13 11 views
0

J'essaye de créer un bouton qui va simplement revenir à la racine du contexte. J'ai remarqué que Flex possède un attribut @ContextRoot qui ne semble fonctionner que dans certains cas. Par exemple, si je tente de l'utiliser dans le MXML suivant:Flex: Comment utiliser le @ContextRoot dans un Button ou un LinkButton

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

Je reçois l'erreur suivante: Erreur: Les attributs ne sont pas remboursables par anticipation.

Je n'arrive pas à trouver cette technique expliquée n'importe où, y a-t-il un autre moyen?

Merci pour l'aide! Dave

+0

Essayez-vous de mettre en œuvre la gestion d'état et de revenir à l'état initial de l'application sans recharger le swf? – quoo

+0

non, j'ai une application qui a plus de pièces que la seule partie flex - donc, je reviens à une page d'accueil en quelque sorte. Merci pour la réponse!! –

+0

BTW ... J'ai la configuration de la racine de contexte dans mes paramètres de compilation, donc cela fonctionne: ... ne peut pas comprendre comment transformer cela en un lier proprement. –

Répondre

0

Grâce à http://devgirl.wordpress.com/ pour cette solution! Je pense qu'il vaut mieux que la solution Application.application.url:

Utilisez le contrôle HTTPService:

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

Et puis dans Action Script:

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

fonctionne comme un charme!

1

Eh bien, la façon la plus propre que j'ai trouvé était d'utiliser une fonction dans le bloc de script, et ne pas utiliser @ContextRoot comme:

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"); 
} 

Je suppose qu'il ya un moyen plus facile qui pourrait utiliser @ContextRoot , donc toutes les autres réponses qui n'utilisent pas de chemins relatifs seraient les bienvenues!

Merci à ces sites pour l'aide:

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

[Adobe aide docs sur des arguments passant]

-Dave