Flex操作cookie

11 篇文章 0 订阅


我们使用的是flex/flash独有的SharedObject对象实现类cookies。

使用两个以上的SharedObject,注意使用static的getLocal方法 


getLocal () 方法   

public static function getLocal(name:String, localPath:String = null, secure:Boolean = false):SharedObject 


尤其注意第二个形参,localPath:String,
 




Flex SharedObject 介绍(转自http://www.eb163.com/club/thread-3235-1-1.html): 

Flash的本地共享对象是在用户机器上实现持久化存储的数据集合。Flash可以从程序中控制这些数据集合,向其中存入或者从中读取大量的信息数据。 

使用SharedObject对象 

  对象说明:SharedObject(共享对象)可以看作是小型的数据库,我们可以用它来存储任何Flash支持的数据类型,比如数字、字符串、数组和对象等等。SharedObject按存放位置可分为本地型(存在客户端)和远程型(存在服务器端)。本地型共享对象的扩展名为.sol。 
  用法:下面是关于本地型共享对象的部分最主要的方法、属性的介绍。 
1)getLocal(name) 方法  “name”参数共享对象名,返回共享对象的参照 
2)flush      方法  立即把数据写入共享对象 
3)data      属性  存取共享对象数据的通道 

只需要掌握以上这些知识就可以用共享对象来存取外部数据了。 
SharedObject.getLocal(objectName [, localPath]) 
其中objectName是该共享对象的名字,localPath即共享对象所在路径。 

// 创建一个本地保存数据的对象 
var cookie:Object = SharedObject.getLocal("cookie"); 

方法会在默认的路径下生成一个cookie.sol文件。文件的默认大小不能超过100k,当然可以通过鼠标右击flash窗口,选择设置来管理或者禁用您的本地共享对象。可以让每个flash独立使用自己的SharedObject,当然也可以做一个全域的SharedObject让所有的swf使用,只要给localPath 赋值 "/"。 
在win2k和 win xp中,默认路径为C:\Documents and Settings\username\Application Data\Macromedia\Flash Player\#SharedObjects (username为机器的用户名) 

每个对象都会有一个只读属性data,用来存储被存储到“数据特性”中的对象的属性,这些属性可以共享/存储,每一个属性可以是各种基础数据类型(数组,数字布尔值等)对象。现在cookie已经存储在 SharedObject中了,以后你可以通过对SharedObject数据属性的存取来实现对cookie的存取。例如: 

cookie.data.name = "张三"; 
cookie.data.password = "123456"; 
cookie.data.rememberPassword = true; 

共享对象的写入会在应用程序退出时自动执行,也可以通过cookie.flush()强制写入。 

  示例:按方法一设置场景,然后输入下面的代码。 

var user_so = sharedobject.getlocal("user"); // 建立共享对象的参照  
  
send_btn.onRelease = function() {  
  
   with (user_so) {  
  
   data.name = name; //用data属性和flush方法保存用户输入的用户名       
  
   flush();  
  
 }  
  
};  

本地型共享对象只能把数据保存在默认路径下,而且扩展名只能是.sol。这种方法的作用与设置cookies的作用类似。 

       只有必须在不同flash对象之间共享数据时才需要在SharedObject.getLocal()方法中指定path参数,将所有必须共享数据的flash对象都单独放到一个目录下。 

SharedObject应用后生成的文件在本地的存放目录(转自:http://bbs.airia.cn/FLEX/thread-3956-1-1.aspx): 

* Windows XP: 
         o For Web sites: C:\Documents and Settings\<user>\Application Data\Macromedia\Flash Player\#SharedObjects\<random code>\<domain>\<path>\<object name>.sol 
         o For AIR Applications, C:\Documents and Settings\<user>\Application Data\<AIR Application Reverse Domain Name>\Local Store\#SharedObjects\<flash filename>.swf\<object name>.sol 
   * Windows Vista 
         o C:/Users/username/<user>/AppData/Roaming/Macromedia/Flash Player/#SharedObjects/<domain>/<path>/<flash filename>.swf/<object name>.sol 
   * Mac OS X: 
         o For Web sites, Macintosh HD:Users:<user>:Library:Preferences:Macromedia:Flash Player:#SharedObjects:<random code>:<domain>:<path from webserver>\<object name>.sol 
         o For AIR Applications, Macintosh HD:Users:<username>:Library:Preferences:<AIR Application Reverse Domain Name>:Local Store:#SharedObjects:<flash filename>.swf\<object name>.sol 
   * Linux/Unix: 
         o /home/<User>/.macromedia/Flash_Player/#SharedObjects/<domain>/<path>/<flash filename>.swf/<object name>.sol 

在Flex中利用SharedObject实现Cookie功能(转自:http://www.gold98.net/blog/article.asp?id=748): 

SharedObject提供了下面的操作本地对象的方法: 
SharedObject.clear() 删除本地共享对象; 
SharedObject.flush() 立即把共享对象数据写入本地文件; 
SharedObject.getLocal() 创建或连接本地共享对象; 
SharedObject.getSize() 取得本地共享对象的指定大小数据。 

<?xml version="1.0" encoding="utf-8"?>  
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init(event)" borderColor="#FFFFFF" themeColor="#FFFFFF" width="800" height="600" backgroundColor="#FFFFFF" textAlign="center" verticalAlign="middle" horizontalAlign="center" backgroundImage="@Embed(source='lt1.jpg')">  
<mx:Script>  
    <![CDATA[  
        import mx.controls.Alert;  
        import mx.events.FlexEvent;  
        private function init(event:FlexEvent):void {  
        // 创建一个本地保存数据的对象s     
        var test:SharedObject = SharedObject.getLocal("testcookie");  
        test.data.user = "testuser";  
        test.data.psw = "testpwd";  
        test.flush(); //提交保存  
  
        var test2: SharedObject = SharedObject.getLocal("testcookie");  
        Alert.show(test2.data.user);  
        Alert.show(test2.data.psw);  
        }  
    ]]>  
</mx:Script>  
</mx:Application>  


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值