AS3 Сохранение локального файла под iOS - PullRequest
3 голосов
/ 19 ноября 2010

Я открываю и тестирую данные, используя класс 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 ]

4 голосов
/ 19 ноября 2010

Вы не можете сохранить данные в File.applicationDirectory, они должны быть неизменными. Вместо этого сохраните его в File.applicationStorageDirectory. Существует также File.documentsDirectory - текущий каталог документов пользователя, если вы уверены, что вам нужно засорять его своими файлами:)

1 голос
/ 14 мая 2012

Для меня переключение на readUTF () сработало.

Кроме того, две строки, инициализирующие «файл», должны быть в конструкторе, иначе вы не можете вызвать «xml_save» (сначала нужно будет выполнить «xml_load»).

Спасибо

0 голосов
/ 15 октября 2011

Сбой, потому что вы используете writeUTF для записи и readMultiByte для чтения.

Если вы переключитесь на readUTF, это будет работать.

0 голосов
/ 19 ноября 2010

ты пробовал Filereference.save()?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...