如何在AIR应用程序中动态加载文件?我必须使用File类吗?

时间:2012-02-09 03:43:27

标签: file-io air

我有一个XML文件,用于指定我需要加载的图像文件。 XML文件和图像文件位于相对于AIR应用程序所在位置的子文件夹中。

我需要加载XML文件以及图像(加载它们并将它们作为子项添加到movieclip)

在我的AIR应用中,当我尝试通过URLRequest加载它时,它无效。

myLoader = new URLLoader();
myLoader.load(new URLRequest(xmlFilename));
myLoader.addEventListener(Event.COMPLETE, processXML);

(我知道这可以从.swf b / c我测试过它)

我找到了一些使用File类的示例,这是我的代码,这确实有效:

var aFile:File = File.applicationDirectory.resolvePath( xmlFilename );
var aStream:FileStream = new FileStream();
aStream.open( aFile, FileMode.READ );
configXML = new XML( aStream.readUTFBytes( aStream.bytesAvailable ) );          
aStream.close();            
processXML();

...

我现在正在尝试加载XML文件中指定的图像,我发现我必须使用File类来引用文件系统中的图像。

var engImageFile:File = File.applicationDirectory.resolvePath( "./english/"+ engFilename ); 

ldr = new Loader();
var urlReq:URLRequest = new URLRequest( engImageFile.url );
ldr.contentLoaderInfo.addEventListener( Event.COMPLETE, engImgLoaded );
ldr.load(urlReq);

这是AIR在读取/加载/等时访问文件(使用File类)的方式。它们?

2 个答案:

答案 0 :(得分:0)

如果我正确理解了您的问题,我相信您只需要将其作为数据源/数组加载,然后您可以绑定到您选择的组件。

答案 1 :(得分:0)

documentation中,它声明如果您使用File类访问文件,那么这在所有平台上都是安全的。此外,File对象的.url属性将使用适当的URL方案...

  • “app:” - 相对于应用程序目录
  • “app-storage:” - 相对于特殊应用程序存储目录
  • “file:” - 所有其他...我想如果你指定一个绝对路径