Flex 开发中cookie 类似功能的实现

  我们在用Flex 开发RIA 程序时,往往会遇到这样一个问题:我们希望自己的程序能够像传统web程序那样,能够记住登陆用户的登陆信息(至少用户名),自己研究了一下,也应用到了公司的项目上,就是使用flash的共享对象ShareObject.

   从Web程序来讲, 共享无非是客户端(浏览器端)和服务器端的共享 .ShareObject又分两类,一类是LSO(Local Share Object 本地共享对象),类似于cookie,而另一种RSO(Remote Share Object 远程共享对象) .对于做过Flash聊天室的人来讲,RSO应该就是熟客了.

   从上面来看,很显然,我们这里使用到的是第一种,及LSO, 将用户数据存到一个数组里面,并存入共享对象,而界面上,当用户输入用户名后类似cookie的那个下拉列表框,我们用Flex的list控件来实现. 具体的实现思路如下:

    1: 定义一个全局用户共享对象 FUsersDataShareObj

       private var FUsersDataShareObj:SharedObject  = SharedObject.getLocal("UsersData")

    2:用户登陆时,查找并记住用户名,往共享对象里存入用户数据

         //记忆用户名
        private function saveUsersDataToShareObj(aUserName:String):void

      {
        var mUsersDataArr:Array=new Array;
      
         if(FUsersDataShareObj.data.Users!=null)                 

            mUsersDataArr=FUsersDataShareObj.data.Users as Array;

        if(mUsersDataArr.indexOf(aUserName)<0) mUsersDataArr.push(aUserName);    
        FUsersDataShareObj.data.Users=mUsersDataArr;
        FUsersDataShareObj.flush();  
     }

  3.读取共享对象里的用户数据,并讲匹配的用户数据显示到list控件(id为lst)内,让用户选择

        //查找匹配用户
  private function readUsersDataFromShareObj(aStr:String):void

 {   
   var mUsersArr:Array=new Array;
   var mUsersShowArr:Array=new Array
   
      mUsersArr=FUsersDataShareObj.data.Users as Array;      
      if(mUsersArr==null ||aStr=="")
      {
         lst.visible=false;         
         return;
      }
      for(var i:int=0;i<mUsersArr.length;i++)
      {       
        if(mUsersArr[i].toString().substr(0,aStr.length)==aStr)
        {
          mUsersShowArr.push(mUsersArr[i]);
        }
      
      }
      if (mUsersShowArr.length>0)
      {
        lst.dataProvider=mUsersShowArr;
        lst.visible=true;               
      }else
      {
        lst.visible=false;
      }   
      }

 

    基本的实现就是上面那样了,再加点界面上的小处理,一个类似cookie的功能就实现了.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值