17.1.创建一个共享对象

17.1.1. 问题
我想要存贮数据到本地硬盘,并想要在多个会话中获取这些数据。
17.1.2. 解决办法
使用ShareObject 类来创建会被存储到用户系统并能被相同会话或以后的会话访问的数据对象。
17.1.3. 讨论
实际上ShareObject 的行为有些像浏览器的cookies,ShareObjects 常常被成为Flash Cookies,它可以:
?? 1.维护本地持久化
?? 2.在Flash Media Server 服务器上存储共享数据。
?? 3.实时共享数据
你可以使用ShareObject 来存贮数据到用户的硬盘上并且在应用程序的当前会话或者以后的会话来获取这些数据。无论如何,一个ShareObject 只能被创建它的应用程序所访问。

另外,应用程序对ShareObject 的访问被限制,只能运行于相同的域。一个应用程序不能访问定位到不同域的ShareObject。

ActionScript3 提共了两种类型的ShareObject:
本地共享对象(Local SharedObjects)
类似于浏览器cookie,本地存贮对象适于用力维护和持久化多个会话中的数据。例如,你可以在用户访问网站之后,使用他们来存贮数据。你可以追踪人口统计数据、档案资料以及文章的潜在阅读用户来影响和改变用户下次访问应用程序的用户体验。

远端共享对象(Remote ShareObjects)
远端共享对象需要使用FMS,它更像是实时的数据传输设备。当你想要在一个多人参与的聊天室中实时查看聊天记录时,你可以在这个聊天应用程序中使用远端共享对象。当一个远端共享对象在客户端的机器上被更新,它会回馈更新到服务器上的这个共享对象,并会影响和更新其他正在查看相同共享对象的机器上指定的共享对象。

创建或者打开一个已经存在的本地共享对象,使用如下代码:
+展开
-ActionScript
private var myLocalSharedObject : SharedObject = SharedObject.getLocal( "mylso" );

静态方法getLocal 返回一个客户端上的共享对象的引用。对于远端共享对象,使用如下代码:
+展开
-ActionScript
private var myRemoteObject : SharedObject = SharedObject.getRemote( "myRso" );

静态方法getRemote 返回一个FMS 上能被多个客户端访问到的共享对象引用。在呼叫了getLocal 或者etRemote 之后,例子会在客户端机器上使用一个*.sol 连接来打开或者创建一个文件。至此,上面的例子会以两位个文件名作为结束myLso.sol 和myRso.sol .SOL 文件的默认位置依赖于正在运行的操作系统。这些位置对应不同的操作系统,如下所示:
Windows 95/98/ME/2000/XP
C:/Documents and Settings/{ 用户域}/Application Data/Macromedia/Flash Player/#SharedObjects/{web 域}/{应用程序路径}/{应用程序名}/object.sol

Windows Vista
C:/Users/username/{ 用户域}/AppData/Roaming/Macromedia/Flash Player/#SharedObjects/web_domain/path_to_application/application_name/object_name .sol

Mac OS X
/Users/{用户名}/Library/Preferences/Macromedia/Flash Player/#SharedObjects/{web 域}/{应用程序路径}/{应用程序名称}/object_name .sol

Linux/Unix
/home/{用户名}/.macromedia/Flash Player/#SharedObjects/{web 域}/{应用程序路径}/{应用程序名称}/object_name.sol

默认情况,共享对象的最大文件大小是100kb。你也可以通过Flash Player 的设置管理器来改变本地共享对象(LSO)的的默认文件大小

加支付宝好友偷能量挖...


评论(0)网络
阅读(131)喜欢(0)flash/flex/fcs/AIR