2010-05-13 72 views
0

我試圖創建一個按鈕,它將簡單地鏈接回上下文根。我注意到flex有一個@ContextRoot屬性,它似乎只在某些情況下才起作用。例如,如果我嘗試在下列mxml中使用它:Flex:如何在Button或LinkBut​​ton中使用@ContextRoot

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

我收到以下錯誤:錯誤:屬性不可調用。

我似乎無法找到解釋這種技術的任何地方,有沒有另一種方式?

感謝您的幫助! 戴夫

+0

您是否試圖實施狀態管理並鏈接迴應用程序的初始狀態而不重新加載swf? – quoo 2010-05-13 21:26:00

+0

nope,我有一個應用程序比它只有flex部分更多 - 所以,我基本上會回到各種主頁。感謝您的迴應! – 2010-05-14 13:15:03

+0

順便說一句...我有我的編譯設置的上下文根設置,所以這個工程: ...只是不知道如何把它變成一個乾淨地鏈接。 – 2010-05-14 14:09:41

回答

0

感謝http://devgirl.wordpress.com/這個解決方案!我認爲這是比Application.application.url更好的解決方案:

使用HTTPService控制:

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

然後在動作腳本:

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

的作品就像一個魅力!

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

相關問題