首页 > 其他分享 >FLEX SharedObject介绍及应用

FLEX SharedObject介绍及应用

时间:2023-05-26 12:02:08浏览次数:64  
标签:FLEX 本地 对象 sol cookie 应用 SharedObject 共享


以下内容是对网上一些资料的总结

Flex SharedObject 介绍(

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>

标签:FLEX,本地,对象,sol,cookie,应用,SharedObject,共享
From: https://blog.51cto.com/u_16129500/6354889

相关文章

  • FLEX实践—自动发送邮件
    代码:<?xmlversion="1.0"encoding="utf-8"?><mx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"layout="absolute"><mx:Script><!--[CDATA[importflash.net.navigateToUR......
  • FLEX实践—控件内容与String显示区别
     在解释这个区别之前先来看一段示例:<?xmlversion="1.0"encoding="utf-8"?><mx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"layout="absolute"><mx:Script><!--[CDATA[i......
  • FLEX实践—计算指定日期是当年/当月第几周
    计算指定日期是当月第几周:privatefunctionweekOfMonth(yyyy:Number,mm:Number,dd:Number):Number { varmyDate=newDate(yyyy,mm-1,dd); vardiff=myDate.getDate()-1; myDate.setDate(1); vardateWeek=7-myDate.getDay(); if(diff>date......
  • FLEX实践—加载XML文件错误
        这两天在研究一个FLEX小相册,准备做一个超级简单的纯FLEX相册,没想到在读取XML文件的时候遇到了这样一个问题:    1)用FLEXBUILDER创建了一个FLEX工程    2)写了一个MXML文件,一个XML文件    3)在程序中用HTTPService和URLRequest两种方法分别读取XML文件内容 ......
  • FLEX实践—获取当前窗口大小
       在FLEX中获取当前窗口的长度与宽度使用下面的方法:   Application.application.width   Application.application.height    在设置弹出窗口的长与宽的时候可以根据比例来设置,而不用将其长与宽设置为固定值。这样做的好处是考虑到了IE窗口的大小,通过比例设置可......
  • BOSHIDA DC电源模块的主要作用与应用
    BOSHIDADC电源模块的主要作用与应用DC电源模块是一种电源转换器件,作用是将输入电源的直流电压转换为稳定的输出直流电压,以供电子器件使用。DC电源模块主要作用是将交流电源转换为直流电源,为电子设备提供稳定的直流电源。它可以在各种电子设备和电路中,如通信设备、工业控制、计算......
  • Redmine之报表应用研究
    近来将RedMine的源代码下下来进行研究,主要目的是研究它的Report功能是如何实现的目前研究结果总结为几点:1)Remine界面上支持PDF,CSV,HTML输出,但没有单独的报表运行中心,只有在Issue及Gant界面有报表输出功能2)新建两个用户a和b,a用户在创建时默认语言选择“English”,b用户选择"Chinese(Si......
  • RUBY-FLEX实践—利用swfobject在RUBY工程中加载SWF
    开发环境:Ruby:Ruby1.9.1Rails:Rails2.3.5IDE:RubyMine2.0.1FlexBuilder:FlexBuilder4 开发思路:1)在FlexBuilder中创建Flex工程2)在RubyMine中创建Rails工程3)将Flex工程bin-debug下编译的swfobject.js拷贝至Ruby工程指定位置4)引用Flex工程编译后的html中的内容实现在Rails页面中嵌......
  • FLEX4 序列号失效
    愚人节这天,FLASHBUILDER也和大家开了个玩笑,一大早起来,序列号被封了。上网搜了一下,果然天无绝人之路 但是我换了序列号仍然无法使用 再看以下这位高手的:方法1:暂时把系统时间改到2008,启动后再调回现在的时间。方法2:解压后存入Flex的安装文件夹plugins/com.adobe.flexide.amt_4.0.......
  • FLEX4实践—DropDownList与ComboBox
    FLEX4相对FLEX3的组件变化列表中列出以这么一项:mx.controls.ComboBox->spark.components.DropDownList 官方解释如下:   ComboBox控件是DropDownListBase控件的子类。与DropDownListBase控件类似,当用户从ComboBox控件的下拉列表中选择某项时,数据项将显示在......