Apache flex 如何在Flex中读取配置文件?

Apache flex 如何在Flex中读取配置文件?,apache-flex,mxml,config,Apache Flex,Mxml,Config,我现在正在为学校做一个项目,我们正在尝试将其设置为便于部署。它的webapp部分完全是用adobeflex编写的 但是,我们需要指向代码中某些文件/url的链接,这些文件/url在不同的机器上是不同的 例如,我的服务器可能使用8180作为端口,而其他人使用8080。 或者一个人正在使用Windows,因此文件路径为C:/。。。而我的将是/家/ 我们有没有办法将这些文件放到一个单独的配置文件中,并在mxml文件中动态读取它们 如果我们不必为每个单独的部署重新编译,那就太好了 提前谢谢 如果启用了本

我现在正在为学校做一个项目,我们正在尝试将其设置为便于部署。它的webapp部分完全是用adobeflex编写的

但是,我们需要指向代码中某些文件/url的链接,这些文件/url在不同的机器上是不同的

例如,我的服务器可能使用8180作为端口,而其他人使用8080。 或者一个人正在使用Windows,因此文件路径为C:/。。。而我的将是/家/

我们有没有办法将这些文件放到一个单独的配置文件中,并在mxml文件中动态读取它们

如果我们不必为每个单独的部署重新编译,那就太好了


提前谢谢

如果启用了本地文件沙盒,则可以使用URLLoader读取本地文件:

但是,您的SWF也必须是本地的


如果要远程加载SWF,可以连接回加载服务器以获取资源列表。在大多数情况下,这可能是首选解决方案。

您可以通过向运行SWF的HTML中添加FlashVar来将参数传递到SWF中。

您可以使用HTTPService加载XML文件(或任何文本文件),该文件位于相对于Flex应用程序SWF的位置。只需在应用程序启动时执行HTTPService,解析文件,并在需要的地方提供数据。

我非常同意brd6644。配置文件所在的服务器上需要一个跨域策略文件。只需将以下XML复制到名为“crossdomain.XML”的文件中,并将其放在包含配置文件的服务器的根服务器上

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy 
  SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
  <allow-access-from domain="*" />
</cross-domain-policy>

此外,以下是一些示例HTTPService代码:

private function init():void{
     get_bands_service.url = yeswewillArtistsURL;
     get_bands_service.method = "GET";
     get_bands_service.addEventListener(FaultEvent.FAULT, onServiceFault);
     get_bands_service.requestTimeout = 20;
     get_bands_service.send();
}

<mx:HTTPService id="get_bands_service" result="parseBandsServiceResult();" useProxy="false" />
private function init():void{
get\u bands\u service.url=YesWellArtistSurl;
get\u bands\u service.method=“get”;
获取服务.addEventListener(FaultEvent.FAULT,onServiceFault);
get\u bands\u service.requestTimeout=20;
get_bands_service.send();
}
签出时,文档将向您展示如何使用相对URL,如资产文件夹中的:

loadXML("assets/xml/config.xml);

如果xml和flex应用程序在同一台服务器上,则无需担心跨域问题。

好主意,我忘记了FlashVar。