联众学府教育网合作机构>

搜学在线有限公司EABHJE

欢迎您!
朋友圈
机构未认证 全国统一学习专线 8:00-21:00

位置:搜学在线有限公司EABHJE » 培训新闻 » 中小学 » 拓展训练营 » 夏令营 » 体验Flash MX(10):服务器/客户数据存储控制

体验Flash MX(10):服务器/客户数据存储控制

发布时间:2023-07-22 04:36:33

  Flash MX在服务器/客户的数据处理/存储控制上下了一些功夫,其中简单而方便的loadVars对象我们在第二天就看到了其芳踪,XML/XmlSocket对象还是老瓶装旧药,cookie对象也不过是测试环境的牺牲品,倒是新的SharedObject对象和LocalConnection对象让我看到Flash MX更多的闪光点,我们可以利用它们实现记录网站访问历史、用户私人信息存储、游戏暂存/数据缓存等很多应用。

  通常,我们在Flash 5中会有几种方法来存储我们用过的数据:如果在无Server的状态,我们可能用到FScommand+exec+EXE或者FScommand+Save+XML,适用于单机游戏和存放“cookie”;如果有Server,则需要Loadvar/XML or XmlSocket Send连接服务器端程序写入服务器数据库保存,但在网络条件恶劣或者安全措施严谨的情况下,这样的方法可能造成重要数据的无法写入;而Flash MX的SharedObject则可以减缓服务器存储速度并有效解决此类问题。

  mySO=new SharedObject(); //make a new SharedObject

  SharedObject对象看起来更像是cookie对象/MMSave方法和FScommand的Save的结合产物。在存储用户临时数据时我们可能经常使用到它,例如:

  //main 1

  i=10
  while(--i){
    var saveme=random(4);   //change text here
    var tmpData=("testMod");
    if (==undefined || !=saveme){
      trace("new data saved"+eval(=saveme));   //display & save
      (); //refresh data
    }
    trace();   //display result
    trace("-------------------------------");
  }

  这个例子清楚地说明SharedObject的临时数据存储功能。首先,随机产生0-3的随机数作为待存数据,然后通过SharedObject的getLocal方法读取硬盘中文件为中的数据,判断内容里面名称为data的子值是否和待存数据相同或者根本无数据,条件成立则刷新存储构造数据data的data值并显示结果(“new data saved”)。

  要点:

  先覆盖原值,然后flush()一次(恰如其名——冲厕所)。

  *显示当前值,如果和原值相同,则不会显示new data saved,即没存入硬盘。(图1)

(图1)

  应用:

  //prepare functions

  soLoad=function(src){
    return (src);
  }
  soSave=function(src,sdata){
    var tmpData= (src);
    for (var i in sdata)
      [i]=sdata[i];
    trace(());
    return ();
  }

  //from function lib

  =function(){
    for(var i in )
      delete [i];
  return ();
  }

  //main 2

  //init

  var mySo="testMod";
  var aryData={aritcle:"Flashmx new lighting world day10",author:"",date:"4/8/2002",from:"DnVsystem",url:""}

  //remote (src);
  //local local data

  var tempSO=(mySo);
  trace("clearing....garbage:" + (() ? "cleaned" : "fail in clearning local data"));

  //load & save

  if (soSave(mySo,aryData) && aryData){
    var mainData=soLoad(mySo);
    if (mainData) for(var i in ) trace(i+":"+[i]);
    else trace("Fail in save ");
  }
  else trace("No Data");

  这个例子基本上覆盖了SharedObject的本地应用的全部常用用法,程序开始的时候我假设不需要上次的记录,所以我要清除那些东西,所以使用了localDeleteAll()(from function lib)方法来清空我要写的文件;接着判断一些必要的纠错,并把已经准备好的数据Object对象aryData用自定义的soSave写入目标mySo。

(图2)

  这样我们就实现了一个简单过程,其中getSize方法可以获取sharedObject的文件大小,在Flash MX的默认是100k,但这个可以由用户自定义,甚至无限大。

  通过这个例子,我们可以把这样的过程利用到网站访问历史、用户私人信息存储、游戏暂存/数据缓存等很多应用。

  存储结构:

  就好像MX的公用Include路经一样,SharedObject的存储路经也很十分的规矩:主根目录在Application DataMacromediaFlash Player内,存放本机数据的数据都会在localhost目录中出现,其他网站的数据都会在根目录以域名格式的文件夹出现,例如上面我们的例子,我在桌面上做的文件就会放在:localhostdocuments and 。

  存储格式不是很复杂,提取的时候按照特定的规定简单的Split截取文件字符并打散成Object,而且数据虽然没有加密,但这样可以加快提取速度。

  存储极限:

  在Flash MX中引入的Settings面板有效的解决了部分安全问题,可由用户自己控制Camera和Microphone并可控制SharedObject的大小,方法:

  (1);

  源文件下载:

  /tutorial/flash_mx/
  

  Tips:

  ()的用法:

更多培训课程,学习资讯,课程优惠,课程开班,学校地址等学校信息,请进入 搜学在线有限公司EABHJE 详细了解
咨询电话:

还没有找到合适的课程?赶快告诉课程顾问,让我们顾问马上联系您! 靠谱 的培训课程,省时又省力!

微信访问

#tel_020#