2

我有 Flex 应用程序,我想在运行时从文件中加载属性。
例如:我想拥有应用程序管理员的电子邮件地址,并且我不想在每次管理员更改时重建应用程序。我想更改属性文件,应用程序应该加载更新的值。

我找到了在运行时加载本地化的教程,但这并不是我所需要的。
任何帮助(和示例代码)将不胜感激。

PS。
如果这有什么不同,我的应用程序是在 Flex 3.5 下编译的

4

2 回答 2

3

为了补充@Christophe 的回答:有两种方法可以进行本地解析(即不需要第三方库),但它们都不解析 .properties 文件。

JSON

警告:仅自 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

以 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
}
于 2013-06-13T12:44:51.990 回答
1

您需要使用 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);
}
于 2013-06-13T12:01:59.077 回答