2017-01-10 84 views
-1

这是一个Flash应用程序,将通过Adobe Air部署在Android设备上。我试图将用户的用户名和分数(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空气不允许将文件写入 您可以得到只写访问的任何目录:

  • File.documentsDirectory
  • File.applicationStorageDirectory
  • 这是被选择的 “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

相关问题