如何在ActionScript 3.0中写入文本文件?

3

我正在研究一种认证方法,有两个文本字段分别命名为“用户名”和“密码”。 我想实现这样一个功能,当用户输入他们的用户名和密码时,将其存储到文本文件中。因此,在他们再次登录时,它会从文本文件中读取用户名和密码以进行登录。 我该如何做到这一点? 谢谢:D


如果这是一个Web应用程序,请查看SharedObject类(创建本地共享对象以存储数据)。如果这是一个AIR应用程序,请使用File类。 - George Profenza
将用户名和密码保存为纯文本是一个不好的主意。确保你研究一些加密方式。 - Adam Harte
2个回答

5

可以将内容保存到文本文件中(使用AIR中的File类),但这并不是一个好的方法。相反,您应该查看SharedObject类。

快速示例:

 var sharedObject:SharedObject = SharedObject.getLocal("userInfo"); //this will look for a shared object with the id userInfo and create a new one if it doesn't exist

一旦您掌握了sharedObject,
sharedObject.data.userName = "Some username";
sharedObject.data.password= "Some password"; //it's really not a good idea to save a password like this
sharedObject.flush(); //saves everything out

现在要在代码的其他地方获取您的数据

var sharedObject:SharedObject = SharedObject.getLocal("userInfo");
trace(sharedObject.data.userName);
trace(sharedObject.data.password);

这个对象被保存在用户的计算机上,非常类似于浏览器的cookie。

现在将密码以明文形式保存到这个对象中并不是一个好主意。更好的方式是在服务器上验证登录信息并在此对象中存储某种类型的会话ID。

伪代码如下:

function validateLogin(){
    var sessionID = server->checkLogin(username, password); //returns a string if authed, nothing if not
    if(sessionID){
         sharedObject->sessionID = sessionID;
    } else {
        //bad login
    }
}

更多阅读:

http://help.adobe.com/zh_CN/FlashPlatform/reference/actionscript/3/flash/net/SharedObject.html

http://www.republicofcode.com/tutorials/flash/as3sharedobject/


0
理想情况下,您不能使用Flash编写文件(除非它是AIR应用程序)。Flash应该在浏览器上运行,因此允许其访问系统资源(如文件系统)会带来安全威胁。但是,AIR是一种技术,在其中Flash作为桌面应用程序运行,在这种情况下,它可以编写文件。
共享对象是一种方法,Flash可以在浏览器环境中保存一些临时数据,但是,如果您清除缓存并删除浏览器文件,我猜它也会被清除。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接