Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Записать данные в файл (http://www.flasher.ru/forum/showthread.php?t=164644)

windrunner31 17.08.2011 22:08

Записать данные в файл
 
Можно ли с помощью флеша записать необходимые данные файл(.txt,к примеру?)
Это можно в air,но я не нашел достойного урока на эту тему,да и зачем,если это можно во флеш?Если можно всеже)

goodguy 17.08.2011 22:16

FileReference#save для созранения на компе
Но вот не уверен, что флеш плеер может создать текстовый файл
К слову, в эйр это сделать точно можно, плюс можно даже в фоновом режиме, без каких бы то ни было диалоговых окон.
Код AS3:

var file:File = File.desktopDirectory.resolvePath("file.txt")// создаем файл на рабочем столе
var fileStream:FileStream = new FileStream();                        // создаем новый поток
fileStream.open(file, FileMode.WRITE);                                  // открываем файл для записи
fileStream.writeUTFBytes("Какой-то текст в файле");            // пишем
fileStream.close();                                                                // закрываем

Это в эйр. Все просто.

windrunner31 17.08.2011 22:22

Я просто не знаком с языком эйра,и не находил статей по нему,можете в личку либо бросить статью,по которой вы учились,либо любое ваше приложение на эйре?

goodguy 17.08.2011 22:26

Код AS3:

Я просто не знаком с языком эйра

Эйр - это по большей части АС3, такой же как во флеш плеере, но кое в чем расширенный.
Все различия есть в оф документации.
Под него пишут и на JS, но я этим никогда не занимался.

GBee 18.08.2011 01:43

Цитата:

FileReference#save для созранения на компе
Но вот не уверен, что флеш плеер может создать текстовый файл
То что нужно, но только под 10 плеер, ну и с диалогом.

windrunner31 18.08.2011 10:23

Тогда вопрос,я попробывал то,что посоветовал ув.goodguy
Код AS3:

import flash.filesystem.File;
import flash.filesystem.FileStream;
 
var file:File = File.desktopDirectory.resolvePath("file.html")// создаем файл на рабочем столе
var fileStream:FileStream = new FileStream();                        // создаем новый поток
fileStream.open(file, FileMode.UPDATE);                                  // открываем файл для записи
var str:String = fileStream.readUTF();          // пишем
trace(str);
fileStream.close();                                                                // закрываем

Это выдает ошибку -
Код AS3:

Error: Error #2030: End of file was encountered.
        at flash.filesystem::FileStream/readUTF()
        at _fla::MainTimeline/frame1()[_fla.MainTimeline::frame1:7]
        at runtime::ContentPlayer/loadInitialContent()
        at runtime::ContentPlayer/playRawContent()
        at runtime::ContentPlayer/playContent()
        at runtime::AppRunner/run()
        at global/runtime::ADLEntry()

Если код заменить на
Код AS3:

import flash.filesystem.File;
import flash.filesystem.FileStream;
 
var file:File = File.desktopDirectory.resolvePath("file.html")// создаем файл на рабочем столе
var fileStream:FileStream = new FileStream();                        // создаем новый поток
fileStream.open(file, FileMode.UPDATE);                                  // открываем файл для записи
var str:String = fileStream.readUTFBytes(30);          // пишем
trace(str);
fileStream.close();

То ошибок нету,в чем причина?

goodguy 18.08.2011 10:50

windrunner31, вам не плохо бы хотя бы чуть-чуть подучить английский, ну или заглянуть в словарь:
to read - читать
to write - писать
Вот где в моем примере был такой код?
Код AS3:

var str:String = fileStream.readUTFBytes(30)// пишем  ... пишем???


windrunner31 18.08.2011 12:18

Я поменял код на считывание,а английский я знаю,просто коменты лень было менять)На них не обращайте внимания.

goodguy 18.08.2011 13:01

Тогда в чем проблема?
Если в файл записаны UTF байты, то и читаются они так же без проблем

windrunner31 18.08.2011 13:59

Не очень понял,мне интересно понять,почему верхний код не работает,а нижний работает?
Я записывал и через
Код AS3:

fileStream.writeUTF и через fileStream.writeUTFBytes



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

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