我有Flex應用程序,我想在運行時從文件加載屬性。
例如:我想讓電子郵件地址給應用程序管理員,並且我不想在每次管理員更改時重建應用程序。我想在屬性文件中進行更改,應用程序應該加載更新後的值。在Flex中運行時從文件加載屬性
我發現在運行時加載本地化的教程,但這不是我所需要的。
任何幫助(和示例代碼)將不勝感激。
PS。
如果這有什麼不同,我的應用程序將編譯爲Flex 3.5
我有Flex應用程序,我想在運行時從文件加載屬性。
例如:我想讓電子郵件地址給應用程序管理員,並且我不想在每次管理員更改時重建應用程序。我想在屬性文件中進行更改,應用程序應該加載更新後的值。在Flex中運行時從文件加載屬性
我發現在運行時加載本地化的教程,但這不是我所需要的。
任何幫助(和示例代碼)將不勝感激。
PS。
如果這有什麼不同,我的應用程序將編譯爲Flex 3.5
您需要使用URLLoader對象加載外部屬性文件,然後解析屬性。對於解析,您可以使用StringUtils.parseProperties方法從AS3Commons-Lang
var urlLoader:URLLoader = new URLLoader();
urlLoader.addEventListener(Event.COMPLETE, urlLoaderCompleteHandler);
var request:URLRequest = new URLRequest(url);
urlLoader.load(request);
private function urlLoaderCompleteHandler(event:Event):void {
var properties:Object = StringUtils.parseProperties(urlLoader.data);
}
不知道你有一個.properties解析器在那裏:很高興知道。 – RIAstar
爲了補充@克里斯托夫的回答是:有本地做解析(即不需要第三方庫)的兩種方式,但它們都沒有解析.properties文件。
(警告:僅適用本身作爲Flash播放器11)
寫JSON格式的配置文件:
{
"myProperty": "myValue",
"otherProp": "someValue"
}
加載同樣的方式克里斯托夫介紹和像這樣的句柄:
private function urlLoaderCompleteHandler(event:Event):void {
var properties:Object = JSON.parse(urlLoader.data);
trace(properties.myProperty); //myValue
}
寫您的配置文件中的XML格式:
<config>
<myProperty>myValue</myProperty>
<otherProp value="someValue"/>
</config>
加載同樣的方式克里斯托夫描述和處理這樣的:
private function urlLoaderCompleteHandler(event:Event):void {
var properties:XML= XML(urlLoader.data);
trace(properties.myProperty.text()); //myValue
trace([email protected]); //someValue
}
只要把JSON或XML文件的服務器上,下載並解析它。你有特定的問題嗎? – RIAstar
爲什麼我需要下載文件?還可以自己解析它?我想把它放在應用程序中(像Spring屬性文件) –
一個Flex應用程序在客戶端機器上運行(不同於經典的 - 可能是基於Spring的web應用程序),所以在運行時讀取屬性的唯一方法是讓Flex應用程序下載客戶機上的屬性文件並讀取它。 – RIAstar