Есть ли способ прочитать локальные файлы в ActionScript 3 "без вывода сообщений"? - PullRequest
2 голосов
/ 17 сентября 2011

Я занимаюсь разработкой приложения и из-за определенных ограничений дизайна я вынужден делать это во Flash.Это приложение взаимодействует с другим, выполненным на c ++, но только потому, что мне нужна пара строк, поэтому я подумал, что будет легко записать их в файл .txt и проанализировать его.Но единственный способ, который я нашел до сих пор, - это добавить обработчик событий просмотра и выбрать файл вручную.Это не хорошо для меня, мне нужно, чтобы файл читался автоматически по указанному пути, что-то вроде:

        var data:ByteArray = fileRef['C:\whateverPath'];
        var loader:Loader = new Loader();
        loader.loadBytes(data);

Можно ли это сделать?

Ответы [ 2 ]

5 голосов
/ 17 сентября 2011

Предполагается, что, поскольку это выполняется на рабочем столе, вы используете AIR.Если это так, вы можете использовать стандартные API-интерфейсы для файлов AIR следующим образом (предполагается, что файл находится в каталоге пользователя):

var file:File = File.userDirectory.resolvePath("myfilename.txt");
var fileStream:FileStream = new FileStream();
fileStream.open(file, FileMode.READ);
var str:String = fileStream.readUTFBytes(file.size);
fileStream.close();

Выше также предполагается, что текстовый файл имеет кодировку UTF-8.Если нет, в классе FileStream есть и другие методы чтения.

AIR, конечно же, также имеет доступ к другим каталогам.Например, чтобы получить файл в корне диска C: на windows:

var file:File = new File("C:/mytextfile.txt");
0 голосов
/ 17 сентября 2011

Если вы не используете AIR, вы можете скомпилировать SWF-файл с разрешениями «local-with-filesystem».Затем вы можете использовать URLLoader для загрузки локальных файлов.(Вы также можете назначить SWF-файл доверенным, а затем получить доступ как к файловой системе, так и к сети.)

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