在AIR中加载本地SWF

时间:2012-04-12 23:22:10

标签: actionscript-3 flex actionscript air flex3

我希望能够在AIR桌面应用程序中加载本地SWF。 SWF文件位于用户硬盘上的应用程序本身之外。

我正在使用的代码如下:

var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteHandler);
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgressHandler);
loader.load(new URLRequest("/Users/Oliver/Documents/sample.swf"));

该文件确实存在。我可以在Unix中使用以下代码来测试它的存在:

$ ls /Users/Oliver/Documents/sample.swf

但是,应用程序抛出错误:

Error #2044: Unhandled IOErrorEvent:. text=Error #2035: URL Not Found.

如果我尝试从网络位置加载相同的文件(例如http://127.0.0.1/sample.swf),则加载成功。

我了解AIR可以加载本地和远程文件。这不是这种情况吗?具有讽刺意味的是,在我的应用程序的其他地方,我正在读取,编写和删除本地文件系统中的任意文但我无法加载它们?

1 个答案:

答案 0 :(得分:3)

我相信这个问题与你的道路有关。尝试使用File类来获取swf的路径。

var f:File = File.documentsDirectory
f = f.resolvePath("sample.swf");
/* ----- */

loader.load(new URLRequest(f.url));