今天刚接触到flash的这个功能,这样可以更好的保护数据,MySpace、亚马逊等网站都是采取这种方法。

笔者将本文分为2个部分为大家讲解如何利用Flash Cookie实现游戏存档技术

第一部分:语法讲解;

第二部分:注意事项;

本文开发环境 Flash8.0   AS 2.0

第一部分:语法讲解:

Flash主要是利用SharedObject类实现本地存储信息(类似Cookie,下文用Cookie代替),在AS调用如下图:


SharedObject 类用于在用户计算机上读取和存储有限的数据量。共享对象提供永久贮存在用户计算机上的对象之间的实时数据共享。

用法:

创建Cookie 

代码:
//实例化一个SharedObject对象FlashCookie,名为:CookieNameQQX
//如果CookieNameQQX不存在则创建该Cookie,如果存在则读取
var FlashCookie:SharedObject = SharedObject.getLocal("CookieNameQQX");
//定义一个Cookie变量UserName并赋值为:千秋学
FlashCookie.data.UserName = "千秋学";
FlashCookie.data.Sex = "男";
FlashCookie.data.Life = 100;
//可以存储数组数据
var Score_array:Array = new Array(80,90,99,70,84);
FlashCookie.data.Score = Score_array;
//写入Cookie
FlashCookie.flush();


删除Cookie:


代码:
var FlashCookie:SharedObject = SharedObject.getLocal("CookieNameQQX");
FlashCookie .clear();


读取Cookie值


代码:
var FlashCookie:SharedObject = SharedObject.getLocal("CookieNameQQX");
trace(FlashCookie.data.UserName);
trace(FlashCookie.data.Score[0]);


第二部分:注意事项:

1、 Flash Cookie技术依赖于本地设置

有时可能不允许 SWF 文件写入本地共享对象,有时可能在您不知情的情况下删除在本地共享对象中存储的数据。Flash Player 用户可以管理对单个域或所有域可用的磁盘空间。当用户降低可用磁盘空间量时,一些本地共享对象可能会被删除。


2、 Flash Player 用户还具有隐私控件,它们可防止第三方域(当前浏览器地址栏中域之外的域)读取或写入本地共享对象。

例如:C:\no1.swf 创建了一个名为aa的Cookie,该Cookie将不会被C:\no2.swf所获取;也就是说C:\no1.swf与C:\no2.swf所创建的Cookie,即使名字相同也不会互相影响;同样的道理,基于网络的flash文件,http://www.example.com/no1.swf 创建的Cookie也不会被其它文件网络文件所访问。

3、 Flash Cookie文件存储在本地文件夹

C:\Documents and Settings\电脑用户\Application Data\Macromedia\Flash Player\#SharedObjects

4、Flash Cookie可以被修改以及被访问.