Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex 在flex air应用程序中轻松处理developerNT/production URL_Apache Flex_Air - Fatal编程技术网

Apache flex 在flex air应用程序中轻松处理developerNT/production URL

Apache flex 在flex air应用程序中轻松处理developerNT/production URL,apache-flex,air,Apache Flex,Air,在flex air应用程序中处理developerNT/production URL的简单方法?我想指向我的本地框进行测试,但启动时我希望它自动指向生产URL。我建议使用配置文件或更改主机文件,将域指向开发计算机上的本地主机或开发服务器。使用后一个选项,您总是在代码中使用生产URL,但是您的开发机器将把这些域解析到您的本地机器,因为它首先检查主机文件。您可以使用名称空间并在编译器选项中配置当前名称空间(dev/RELEASE) CONFIG::release public function co

在flex air应用程序中处理developerNT/production URL的简单方法?我想指向我的本地框进行测试,但启动时我希望它自动指向生产URL。

我建议使用配置文件或更改主机文件,将域指向开发计算机上的本地主机或开发服务器。使用后一个选项,您总是在代码中使用生产URL,但是您的开发机器将把这些域解析到您的本地机器,因为它首先检查主机文件。

您可以使用名称空间并在编译器选项中配置当前名称空间(dev/RELEASE)

CONFIG::release
public function connect()
{
  //connect to release url
}

CONFIG::dev
public function connect()
{
   //connect to dev url
}
然后为编译器定义以下选项:

-define=CONFIG::release,false
-define=CONFIG::dev,true

这里最好的方法是将这些信息外部化到一个配置文件(可能是一个XML文件)中,该文件通过一个相对url加载。配置文件可能如下所示:

<config>
    <serviceEndpoint>http://www.mydomain.com/services</serviceEndpoint>
</config>

http://www.mydomain.com/services
请确保使用有效的ActionScript变量名命名XML元素,否则您可能会遇到使用该文件的困难(例如,E4X表达式可能会变得困难)

然后,您可以使用HTTPService加载“config.xml”,它在部署时放在应用程序的SWF旁边。这将允许您将托管在任何域上的SWF重新指向托管在任何其他地方的后端。如果您在本地开发并连接到共享开发服务器,这一点尤其有用


将这些信息编译到SWF中是非常不灵活的,也是一种糟糕的做法。

我通常会查看应用程序(Flex--)或根显示对象(Flash--)中
contentLoaderInfo
对象中的
url
。如果url以“file”开头,您就知道您正在开发/IDE,如果它是“http”,它正在浏览器中运行。如果您只是在浏览器中工作,您还可以向具有以下内容的对象传递参数

{
    url: $_SERVER['SERVER_NAME'];
}

并执行一些init/startup方法,根据应用程序运行的路径进行切换。

我正在编写的一个AIR应用程序中遇到了这个问题,该应用程序通过WebORB访问Rails应用程序

我只需要在和之间切换,这取决于我是否在Flex Builder中运行(通过adl)

这就是我最终使用的:

if (NativeApplication.nativeApplication.publisherID != "") {
   return "http://fakeproductionurl.com";
}
else {
   return "http://localhost";
}

它不能让您在3+个不同的环境之间切换,但它是在开发/生产环境之间切换的一种非常简单的方法。

非常讨厌一个完全可行的解决方案!