我有 Flex 应用程序,我想在运行时从文件中加载属性。
例如:我想拥有应用程序管理员的电子邮件地址,并且我不想在每次管理员更改时重建应用程序。我想更改属性文件,应用程序应该加载更新的值。
我找到了在运行时加载本地化的教程,但这并不是我所需要的。
任何帮助(和示例代码)将不胜感激。
PS。
如果这有什么不同,我的应用程序是在 Flex 3.5 下编译的
我有 Flex 应用程序,我想在运行时从文件中加载属性。
例如:我想拥有应用程序管理员的电子邮件地址,并且我不想在每次管理员更改时重建应用程序。我想更改属性文件,应用程序应该加载更新的值。
我找到了在运行时加载本地化的教程,但这并不是我所需要的。
任何帮助(和示例代码)将不胜感激。
PS。
如果这有什么不同,我的应用程序是在 Flex 3.5 下编译的
为了补充@Christophe 的回答:有两种方法可以进行本地解析(即不需要第三方库),但它们都不解析 .properties 文件。
(警告:仅自 Flash Player 11 起本机可用)
以 json 格式编写配置文件:
{
"myProperty": "myValue",
"otherProp": "someValue"
}
以 Christophe 描述和处理的方式加载它,如下所示:
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>
以 Christophe 描述和处理的方式加载它,如下所示:
private function urlLoaderCompleteHandler(event:Event):void {
var properties:XML= XML(urlLoader.data);
trace(properties.myProperty.text()); //myValue
trace(properties.otherProp.@value); //someValue
}
您需要使用 URLLoader 对象加载外部属性文件,然后解析属性。对于解析,您可以使用AS3Commons-Lang中的 StringUtils.parseProperties 方法
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);
}