AS3在iOS下保存本地文件

时间:2010-11-19 08:06:53

标签: actionscript-3 ios

我正在使用FileStream类打开和测试数据,这应该可以避免文件安全问题。它工作正常,直到我尝试保存到本地文件。当我在adl下测试时,我得到了一个安全错误,我确实没问题(至少它试图保存),直到应用程序在设备上打包和测试,但文件无法保存。有什么想法吗?

public class FilesApp extends MovieClip {

    var file:File;
    var xmldata:XML;

    public function FilesApp() {
        // constructor code

        LoadButton.addEventListener(MouseEvent.MOUSE_DOWN,xml_load);
        ParseButton.addEventListener(MouseEvent.MOUSE_DOWN,xml_parse);
        SaveButton.addEventListener(MouseEvent.MOUSE_DOWN,xml_save);
    }
    public function xml_load (e:MouseEvent):void
    {
        file = File.applicationDirectory;
        file = file.resolvePath("./Data/data.xml");

        var fileStream:FileStream = new FileStream();
        fileStream.open(file, FileMode.READ);
        var str:String = fileStream.readMultiByte(file.size, File.systemCharset);
        fileStream.close();
        DataText.text = str;

        xmldata = XML(str);
        trace('xml file loaded');
    }
    public function xml_save (e:MouseEvent):void
    {
        var writeStream:FileStream = new FileStream();
        writeStream.open(file, FileMode.WRITE);
        writeStream.writeUTF("<xml><name>Changed</name><score>5000</score></xml>");
        writeStream.close();
        trace('xml file saved');
    }
    public function xml_parse (e:MouseEvent):void
    {
        trace('xml file saved');
        DataText.text = "Your name is:"+xmldata.name+" Your best score is:"+xmldata.score;
    }
}

4 个答案:

答案 0 :(得分:4)

您无法在File.applicationDirectory中保存数据,它意味着不可变。将其存储在File.applicationStorageDirectory中。还有File.documentsDirectory - 当前用户文档目录,如果您确定需要将其与文件一起丢弃:)

答案 1 :(得分:1)

对我来说,切换到readUTF()有效。

另外,初始化“file”的两行应该在构造函数中,否则你不能调用“xml_save”(你必须先做“xml_load”)。

由于

答案 2 :(得分:0)

你试过Filereference.save()吗?

答案 3 :(得分:0)

它失败是因为您使用writeUTF执行写操作而readMultiByte执行读操作。

如果切换到readUTF,它将有效。

相关问题