以下内容是对网上一些资料的总结
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>
private var shData:SharedObject; private function init():void{ shData = SharedObject.getLocal("demoData") //获取名称为demoData的 share object this.showLocalData() } private function saveToLocal():void{ shData.data.userName = userName.text; //保存用户名 shData.data.like = like.text; //保存爱好 shData.flush(); //写入local this.showLocalData(); } private function showLocalData():void{ if(shData.data.userName == undefined || shData.data.userName == "" || shData.data.like ==""){ this.info.text = "您第一次来,请填写你的信息并点击记住我" }else{ this.info.text = "您好,爱好" shData.data.like "的" shData.data.userName } }
分享到:
相关推荐
MyEclipse + flex4.5结构,提供两种将前台组件保存为图片的方法。 1、将前台组件保存为图片上传到tomcat服务器 2、将前台flex组件保存为图片(客户端保存),弹出保存对话框,更改保存路径,图片名。
使用Flex开发DataGrid分页控件应用支持客户端及服务端
flex聊天程序客户端flex聊天程序客户端flex聊天程序客户端
flex是妇科客户端编程的很好变现形式。
博文链接:https://tj007-bo.iteye.com/blog/127816
范例使用supermap iclient for Flex客户端裁剪地图。
flex组件保存为图片,弹出保存对话框,更改保存路径,图片名。
Flex通过web服务返回客户端IP地址,如果是本地测试可以返回局域网外网IP和本机IP地址
flex生成图片并保存 网上找到的,共享一下
研究flex的通信问题,写了一个flex的Socket与C#通信例子,类似QQ软件的客户端和服务器端。
flex中一个很不错的拖拉伸缩组件,适合新人学习的组件....
flex采用blazeds实现服务器向客户端推数据案例
描述了怎样把Flex组件保存为本地png图片
flex-object-handles flex中对象的移动 编译 放大 缩小的功能 早期的版本
这个小例子是使用Java作为服务端、Flex做前台,对一个xml文件的读取和写入。 环境:MyEclipse6.0.1+Flex3插件版,jdk1.6,tomcat6.0,dom4j1.6.1,lcds.war, 使用技术:1.Java+flex,及其对象的转换。 2.Java方面...
flex采用blazeds实现服务器向客户端推数据
flex拍照java后台保存照片案例 有注释,帮助理解
JAVA与flex通信的例子,使用remote object 方式与java互相通讯。。。。。。。