Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flash Приложения: AIR, Zinc и тд. (http://www.flasher.ru/forum/forumdisplay.php?f=94)
-   -   Запись переменной в файл с помощью AIR (http://www.flasher.ru/forum/showthread.php?t=207662)

2misha 28.04.2014 23:22

Запись переменной в файл с помощью AIR
 
Код AS3:

but3.addEventListener(MouseEvent.CLICK, clickf3);
 
function clickf3(e:MouseEvent): void {
        var Z: String = Text7.text;
        var file:File = File.documentsDirectory;
        file = file.resolvePath("Text.txt")
        var fileStream:FileStream = new FileStream();
        fileStream.open(file, FileMode.WRITE);
}

Есть у меня такой код. Последние 4 строки функции нарыл в какой-то статье, что так нужны открывать файл для записи. Но как записать в текстовый файл конкретную переменную типа Sctring ( у меня это Z ) - так и не понял. Подскажите пожалуйста.

morgenshtern 28.04.2014 23:35

Код AS3:

var file_ref:File;
file_ref = File.applicationStorageDirectory.resolvePath('путь/имя_файла');
 
var fileStream:FileStream = new FileStream();
fileStream.open(file_ref, FileMode.WRITE);
fileStream.writeТипПеременной(переменная);
fileStream.close();


ZackMercury 28.04.2014 23:36

Вы ошиблись разделом, AIR обсуждается здесь.
На самом деле, в интернете полно примеров работы с файлами через AIR AS3.
Цитата из доков по FileStream:
Код AS3:

import flash.filesystem.*;
 
var file:File = File.documentsDirectory;
file = file.resolvePath("Apollo Test/test.txt");
var fileStream:FileStream = new FileStream();
fileStream.open(file, FileMode.WRITE);
fileStream.writeUTF("Hello");
fileStream.close();

P.S. опоздал...

Akopalipsis 28.04.2014 23:37

Вы лучше подскажите ТС, будет ли air приложение в браузере работать, а то ведь он в соседней теме об этом спрашивал. я просто не уверен на сто процентов, что оно не будет работать.

ZackMercury 28.04.2014 23:39

Ну так ведь дописал AIR, видимо он знает, что это такое.

2misha 28.04.2014 23:59

Цитата:

Сообщение от morgenshtern (Сообщение 1164839)
Код AS3:

var file_ref:File;
file_ref = File.applicationStorageDirectory.resolvePath('путь/имя_файла');
 
var bytes:ByteArray = new ByteArray();
bytes.writeТипПеременной(перменная);
 
var fileStream:FileStream = new FileStream();
fileStream.open(file_ref, FileMode.WRITE);
fileStream.writeBytes(bytes, 0, bytes.length);
fileStream.close();


Ну вот я по вашему примеру сделал код
Код AS3:

var Z: String = "Hello";
var file_ref:File;
file_ref = File.applicationStorageDirectory.resolvePath('Text.txt');
 
var bytes:ByteArray = new ByteArray();
bytes.writeString(Z);
 
var fileStream:FileStream = new FileStream();
fileStream.open(file_ref, FileMode.WRITE);
fileStream.writeBytes(bytes, 0, bytes.length);
fileStream.close();

А компилятор выводит ошибку "Обращение к возможно неопределенному методу wtiteString через ссылку статического типа flash.utils:ByteArray.

ZackMercury 29.04.2014 00:04

Код AS3:

bytes.writeUTF(Z);


2misha 29.04.2014 00:14

Вложений: 1
Теперь ошибок компилятора нет ... но почему-то файл тот как был пустым, так и остался. Посмотрите пожалуйста.

kotyavo 08.05.2014 21:46

Код AS3:

var file:File = File.applicationStorageDirectory.resolvePath("save/config.json");
 
                        trace('writeConfig file path ',file.url);
 
                        var stream:FileStream = new FileStream()
                        stream.open(file, FileMode.WRITE);
                        stream.writeUTFBytes( JSON.stringify(config));
                        stream.close();

Чтение
Код AS3:

                var file:File = File.applicationStorageDirectory.resolvePath("save/config.json");        
 
                                var stream:FileStream = new FileStream()
                                stream.open(file, FileMode.READ);
                                value =  stream.readUTFBytes(stream.bytesAvailable);
                                stream.close();
                                result = JSON.parse(value);

Без дополнительной папки у меня не работало на андройде.

Выше указанный код тестил на всех ios и андройд работает.
ВАЖНО! При каждом новом апдейте приложения данные удаляются автоматом.

Если тестируете в эмумяторе под виндой то данные пишутся в папку пользователя системы/appData/Rouming/идентификатор приложен. вроде такой путь там.

morgenshtern 08.05.2014 22:05

пишите в EncryptedLocalStore, оно остается между реинсталами.
Подходит для идентификации игрока в ммо, если он вдруг приложение переустановит.
Для остальных случаев - ресурсы и т.п. - applicationStorageDirectory достаточно. Очистит - сам дурак. Грузите заново.


Часовой пояс GMT +4, время: 16:50.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.