我正在尝试在 air 运行时而不是 flash 运行时中运行我的 flex 应用程序。除了图像之外,它似乎工作得很好。Adobe Air 运行时会尝试加载它们。有没有办法将图像的根地址更改为服务器端?如果可能的话,我想对 flash 运行时和 air 运行时使用相同的代码 ..“单一代码库 ;-)”
var icon:Image = new Image();
icon.source = "images/test.png";
关于西里尔
我正在尝试在 air 运行时而不是 flash 运行时中运行我的 flex 应用程序。除了图像之外,它似乎工作得很好。Adobe Air 运行时会尝试加载它们。有没有办法将图像的根地址更改为服务器端?如果可能的话,我想对 flash 运行时和 air 运行时使用相同的代码 ..“单一代码库 ;-)”
var icon:Image = new Image();
icon.source = "images/test.png";
关于西里尔
通常我会简单地将资产打包到 AIR 应用程序中。这样,相对路径在 Web 应用程序和桌面应用程序中都有效。但是,由于您在评论中指出我们正在谈论 10000 张图像,因此您必须找到另一种解决方案。
您需要的是一个可针对每种类型的项目进行配置的变量。访问图像的最终代码应如下所示:
var icon:Image = new Image();
icon.source = rootUrl + "/images/test.png";
这rootUrl
可能""
适用于 Web 应用程序和"http://www.mydomain.com"
桌面应用程序。或者在这两种情况下它都可能是绝对路径。没关系:我们不想将该 URL 硬编码到我们的应用程序中。
创建一个包含值的 .properties 文件(或 XML 或 JSON;您喜欢的任何配置文件),rootUrl
并将其读入您的应用程序模型。此配置文件可以打包到 AIR 应用程序中。
.properties 文件将如下所示:
#myapp.properties
rootUrl=http://www.mydomain.com
要读取文件,您可以使用 AIR 的文件流功能,但我建议您使用 : 以老式方式加载它,URLLoader
这样它就可以在 Web 和桌面应用程序中工作。