如何在 ActionScript 3.0 中写入文本文件?
Posted
技术标签:
【中文标题】如何在 ActionScript 3.0 中写入文本文件?【英文标题】:How to write to a text file in ActionScript 3.0? 【发布时间】:2012-04-22 05:50:05 【问题描述】:我正在研究一种身份验证方法,我有 2 个名为“用户名”和“通过”的文本字段 我想这样做,以便当用户输入他们的用户名和密码时,该信息会存储到一个文本文件中。因此,当他们重新登录时,它会从该文本文件中读取用户名和密码以进行登录。 我怎样才能做到这一点? 谢谢:D
【问题讨论】:
如果它是一个 Web 应用程序,请查看 SharedObject 类(创建一个本地共享对象来存储数据)。如果是 AIR 应用程序,请使用 File 类 将用户名和密码保存为纯文本是个坏主意。确保您研究了某种加密。 【参考方案1】:可以保存到文本文件(使用 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/en_US/FlashPlatform/reference/actionscript/3/flash/net/SharedObject.html
http://www.republicofcode.com/tutorials/flash/as3sharedobject/
【讨论】:
【参考方案2】:理想情况下,您不能使用 flash 编写文件(除非它是 AIR 应用程序)。FLash 应该在浏览器上运行,因此允许它访问系统资源(如您的文件系统)是一种安全威胁。但是,AIR 是一种将 Flash 作为桌面应用程序运行的技术,在这种情况下,它可以写入文件。
共享对象是一种闪存可以在浏览器环境中保存一些临时数据的方法,但是,如果你清除缓存并删除浏览器文件,我想它也会被刷新。
【讨论】:
以上是关于如何在 ActionScript 3.0 中写入文本文件?的主要内容,如果未能解决你的问题,请参考以下文章
在 ActionScript (3.0) 中干净地合并两个数组?
如何在 Flash 中使用 Actionscript 3.0 制作动态视频播放器