2013-12-10 14 views
0

我正在開發一個移動 flex項目。我創建了一個ActionScript類:如何從flex標籤使用actioscript靜態成員?

Config.config_so.data.url = url.text; 
Config.config_so.flush(); 

現在我想使用的HTTPService項的參數值,這裏面共享對象的參數數據:

package 
{ 
    import flash.net.SharedObject; 
    public class Config 
    { 
     public static var config_so:SharedObject; 
     public static var db_so:SharedObject; 
     public function Config() 
     { 
     } 
    } 
} 

然後我在一個視圖中設置數據的共享對象<mx:HTTPService id="userRequest" url="here_the_sharedobject_param_value/crr.php" resultFormat="text" ... />

那麼如何調用(獲取)HTTPService項目的url參數值內的sharedobject參數值?

回答

1

試用Flex數據綁定,就像這樣:

<mx:HTTPService id="userRequest" url="{ Config.config_so.data.url + '/crr.php'}" resultFormat="text" ... /> 
+0

他也不得不使課堂,或至少靜止無功可綁定。我想,爲了讓Bindable工作,該類將不得不從Config類擴展EventDispatcher。我還會補充一點,根據文檔http://livedocs.adobe.com/flex/3/html/help.html?content=databinding_2.html,靜態變量只會在應用程序加載時設置一次[因此如果靜態var值發生更改,它們將不會更新] – JeffryHouser

+0

@ Reboog711它們不一定必須將其設置爲可綁定。如果URL是靜態的並且在Flex創建生命週期時間內可用,則它們可以按原樣進行操作。只有在視圖處於活動狀態時數據將發生更改才需要綁定。這很可能不是這種情況。在調試過程中,他們只會在控制檯中發出警告「Object varName not bindable」。 –

+0

@JoshJanusch你說的沒有把它設置爲綁定是對的;我只是做了一個快速測試。但是,我仍然看到很多問題。如果url變量是SharedObject的一部分,那麼SharedObject何時加載與應用程序設置的其餘部分有關?數據是否被加載太晚而無法設置值?我的直覺是,他不能一致地認爲在綁定發生之前url變量將從共享對象中加載。 – JeffryHouser