我希望能够在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可以加载本地和远程文件。这不是这种情况吗?具有讽刺意味的是,在我的应用程序的其他地方,我正在读取,编写和删除本地文件系统中的任意文但我无法加载它们?
答案 0 :(得分:3)
我相信这个问题与你的道路有关。尝试使用File类来获取swf的路径。
var f:File = File.documentsDirectory
f = f.resolvePath("sample.swf");
/* ----- */
loader.load(new URLRequest(f.url));