加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

FLEX SharedObject介绍及应用

发布时间:2020-12-15 01:04:53 所属栏目:百科 来源:网络整理
导读:? 以下内容是对网上一些资料的总结 Flex SharedObject 介绍(转自 http://www.eb163.com/club/thread-3235-1-1.html ): Flash的本地共享对象是在用户机器上实现持久化存储的数据集合。Flash可以从程序中控制这些数据集合,向其中存入或者从中读取大量的信息数
?

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

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>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读