Как вы можете сохранить строку в файл в AS3? - PullRequest
6 голосов
/ 05 августа 2009

У меня есть строка, введенная пользователем, и я хочу сохранить ее в файл на жестком диске пользователя. Вы можете сделать это? И если да, то как?

Ответы [ 4 ]

9 голосов
/ 05 августа 2009

Да, вы можете с FileReference. Вот как это делается:

var bytes:ByteArray = new ByteArray();
var fileRef:FileReference=new FileReference();
fileRef.save("fileContent", "fileName");

Не выглядит слишком сложно, не так ли? И вот видео-учебник об этом тоже:

http://www.gotoandlearn.com/play?id=76

И документация:

http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/

Надеюсь, это поможет.

5 голосов
/ 24 февраля 2010

Поскольку у меня была функция для вывода байтов в файл (потому что я что-то делал с растровыми изображениями), я также использовал ее для вывода строки, например:

var filename:String = "/Users/me/path/to/file.txt";
var byteArray:ByteArray = new ByteArray();
byteArray.writeUTFBytes(someString);
outFile(filename, byteArray);

private static function outFile(fileName:String, data:ByteArray):void {
    var outFile:File = File.desktopDirectory; // dest folder is desktop
    outFile = outFile.resolvePath(fileName);  // name of file to write
    var outStream:FileStream = new FileStream();
    // open output file stream in WRITE mode
    outStream.open(outFile, FileMode.WRITE);
    // write out the file
    outStream.writeBytes(data, 0, data.length);
    // close it
    outStream.close();
}
3 голосов
/ 05 августа 2009

Кроме того, у вас должен быть установлен Flash Player 10 и Flex Gumbo SDK в Flex Builder 3.

Вы также можете посмотреть следующий пример: http://blog.flexexamples.com/2008/08/25/saving-files-locally-using-the-filereference-classs-save-method-in-flash-player-10/

1 голос
/ 06 августа 2009

В Flex 3 нет, вы не можете сделать это, пока вы не загрузите файл на сервер, а затем загрузите файл через URL-адрес на рабочий стол.

В Air или Flex 4 вы можете сохранить его непосредственно из приложения на рабочем столе, как описано выше.

...