2017-01-10 14 views
-1

Это приложение для Flash, которое будет развернуто на устройстве Android через Adobe Air. Я пытаюсь сохранить имя пользователя и счет (boxTwo.text + _clickTxt.text) пользователя в файле .txt в блокноте без какого-либо диалогового окна, появляющегося в устройстве Android. Он будет сгенерирован после нажатия кнопки сохранения (btnSave). Я не могу заставить его работать. Благодаря! Это мой код:AS3/AIR. Создайте файл .txt, нажав кнопку сохранения без диалогового окна.

import flash.net.FileReference; 
import flash.events.Event; 

var so:SharedObject = SharedObject.getLocal("Test"); 
var f:File=new File("path\to\file.txt") 
var str:FileStream=new FileStream(); 

btnSave.addEventListener(MouseEvent.CLICK, onClick); 
function onClick(e:MouseEvent):void 
{ 
    so.data.saveData = currentFrame; 
    so.flush(); 

} 

btnSave.addEventListener (MouseEvent.CLICK, saveFile) 
function saveFile(evt):void 
{ 
    str.open(f, FileMode.WRITE); 
    str.writeUTFBytes(boxTwo.text + _clickTxt.text); 
    str.close(); 
} 
+1

'Я не могу сделать это work' что точно это означает? Это крушение? Или что? –

+0

@ VladMatvienko перед сохранением файла блокнота появляется диалоговое окно/подтверждение. он запрашивает расположение файла блокнота. Я хочу, чтобы он был сохранен без диалогового окна. Спасибо! – niagrafallsxxx

ответ

0

По умолчанию Adobe Air не позволяет записывать файлы в любой каталог Вы можете получить доступ писать только:

  • File.documentsDirectory
  • вызове File.applicationStorageDirectory
  • a directory, который был выбран диалоговым окном "browseForDirectory()"

    fil eVariable.browseForDirectory («Выбрать каталог»);

(Есть и другие каталоги специфичные для каждой платформы, но в целом они эти 3 типа) Так просто изменить свой путь к разрешенному каталогу

var string:String = "Text"; 
    var file:File = File.documentsDirectory.resolvePath("myTxtFile.txt"); 
    var stream:FileStream = new FileStream(); 
    stream.open(file, FileMode.WRITE); 
    stream.writeUTFBytes(string); 
    stream.close(); 
+0

Работает ли он в Adobe Air? – niagrafallsxxx