有没有办法在“静默”中读取ActionScript 3中的本地文件?

时间:2011-09-16 22:08:14

标签: flash actionscript-3 actionscript filesystems

我正在开发一个应用程序,由于某些设计限制,我必须在Flash中进行。这个应用程序与在c ++中完成的另一个应用程序通信,但仅仅因为我需要一些字符串,所以我认为将它们写入.txt文件并解析它会很容易。但到目前为止我找到的唯一方法是添加一个浏览事件处理程序并手动选择该文件。这对我没有好处,我需要在给定路径的情况下自动读取文件,例如:

        var data:ByteArray = fileRef['C:\whateverPath'];
        var loader:Loader = new Loader();
        loader.loadBytes(data);

甚至可以这样做吗?

2 个答案:

答案 0 :(得分:5)

假设在桌面上运行,您使用的是AIR。如果是这样,您可以使用标准的AIR文件API(这假设文件位于用户目录中):

var file:File = File.userDirectory.resolvePath("myfilename.txt");
var fileStream:FileStream = new FileStream();
fileStream.open(file, FileMode.READ);
var str:String = fileStream.readUTFBytes(file.size);
fileStream.close();

以上还假设文本文件是UTF-8编码的。如果没有,FileStream类中还有其他读取方法。

当然,AIR也可以访问其他目录。例如,要在Windows上的C:驱动器的根目录中获取文件:

var file:File = new File("C:/mytextfile.txt");

答案 1 :(得分:0)

如果您不使用AIR,则可以使用“local-with-filesystem”权限编译SWF。然后,您可以使用URLLoader加载本地文件。 (您也可以将SWF指定为受信任的,然后您可以访问文件系统和网络。)

相关问题