Flex Image源服务器端闪存和空气

时间:2012-07-09 08:24:52

标签: flex air

我正在尝试在air运行时而不是flash运行时运行我的flex应用程序。除了图像外,它似乎完美无缺。 Adobe Air运行时尝试加载它们。有没有办法将Image的根地址更改为服务器端?如果可能的话,我想对flash运行时和air运行时使用相同的代码。“s​​ingle codebase ;-)”

var icon:Image = new Image();
icon.source = "images/test.png";

问候 cyrill

1 个答案:

答案 0 :(得分:1)

通常我只是将资产打包到AIR应用程序中。这样,相对路径在Web应用程序和桌面应用程序中都是有效的。但是,由于您在评论中指出我们正在谈论10000张图像,您必须找到另一种解决方案。

您需要的是一个可为每种类型的项目配置的变量。访问图像的最终代码应如下所示:

var icon:Image = new Image();
icon.source = rootUrl + "/images/test.png";

对于网络应用,rootUrl可能是"",对于桌面应用,"http://www.mydomain.com"可能是rootUrl。或者它可能是两种情况下的绝对路径。没关系:我们不想将该URL硬编码到我们的应用程序中。

创建一个.properties文件(或XML,或JSON;您喜欢的任何配置文件),其中包含#myapp.properties rootUrl=http://www.mydomain.com 的值并将其读入您的应用程序模型。此配置文件可以打包到AIR应用程序中。

.properties文件如下所示:

URLLoader

为了阅读文件,您可以使用AIR的文件流功能,但我建议您使用{{1}}的老式方式加载它:这样它可以同时工作网络和桌面应用。