`

(Flex) 使用 ShareObject 類別

 
阅读更多

測試環境:
1. Windows XP Pro
2. Flex Builder 2.0.1

ShareObject 類別允許你將小量資料儲存在用戶端電腦。ShareObject 有點類似瀏覽器的 Cookie。應用程式只能存取屬於自己的資料,且應用程式必須和資料同屬於同一個網域(Domain)。但是這個資料並不能傳送到伺服器端。

ShareObject 提供下面的方法

clear()

從 ShareObject 中清空所有的資料,並從檔案磁碟刪除 ShareObject 檔案。

flush()

將 ShareObject 直接寫入用戶端的檔案

getLocal()

回傳 ShareObject 所在的 Domain。假如不存在,這個方法會在用戶端建立一個新的 ShareObject

getSize()

Gets the size of the SharedObject file, in bytes. The default size limit is 100KB, although it can be larger if the client allows it.


屬性:

data

(唯讀)儲存在 ShareObject 中的資料

onStatus

當 ShareObject 發生警告、錯誤或其他訊息時會觸發這個事件


建立 ShareObject 的語法如下:

SharedObject.getLocal("objectName" [, pathname]): SharedObject

下面是簡單的範例:

public var mySO:SharedObject;
mySO = SharedObject.getLocal("preferences");

上述如果在 local 端執行,Flash Player 會產生 preferences.sol 到下面路徑

c:/Documents and Settings/username/Application Data/Macromedia/Flash Player/#SharedObjects/一串數字/localhost/應用程式路徑/SWF 檔名/

以我的情況來說,我的帳號是 Administrator,SWF 放在 "C:/Documents and Settings/Administrator.MYCHAT-1A793BE7/My Documents/Flex Builder 2/Example/bin",preferences.sol 會存放到下面路徑
C:/Documents and Settings/Administrator.MYCHAT-1A793BE7/Application Data/Macromedia/Flash Player/#SharedObjects/96FX85HW/localhost/Documents and Settings/Administrator.MYCHAT-1A793BE7/My Documents/Flex Builder 2/Example/bin/Example.swf/
註:上述路徑和文件所述有出入,不知道是否為文件錯誤。
註:如果你只有執行上述的 getLocal 並不會立即產生 *.sol,你可以在後面加上一行 mySO.flush() 利即將資料寫入檔案。
註:如果程式是在網路上執行,則路徑結構會變為

c:/Documents and Settings/username/Application Data/Macromedia/Flash Player/#SharedObjects/一串數字/web_domain/應用程式路徑/SWF 檔名/

如:
C:/Documents and Settings/Administrator.MYCHAT-1A793BE7/Application Data/Macromedia/Flash Player/#SharedObjects/96FX85HW/www.box.net/static/flash/box_explorer.swf/
註:假如 getLocal 沒有提供 sol 名稱,則會使用 undefined.sol
註:預設情況 ShareObject 在每個網域只能儲存 100KB,如果超過時,Flash Player 會要求使用者允許儲存超過 100KB 的資料
註:也可以使用 getLocal 的第二個參數來指定儲存位置,但必須是目前網域的子目錄
註:可以一次建立多個 ShareOjbect

存取 ShareObject 資料的方法很簡單,只要透過 data 屬性,後面接需要儲存的變數名稱,如下:
// 寫入資料
mySO.data.name= "Chui-Wen Chiu";
mySO.data.age= 27;

// 讀取資料
trace( mySO.data.name )

SharedObject 範例:紀錄登出時間

點一下 Log out 在重新載入 Flash 會看到上次登入時間
<?xml version="1.0"?>
<!-- lsos/WelcomeMessage.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" initialize="initApp()">
  <mx:Script><![CDATA[
public var mySO:SharedObject;
  [Bindable]
  public var welcomeMessage:String;

  public function initApp():void {
mySO = SharedObject.getLocal("mydata");
     if (mySO.data.visitDate==null) {
        welcomeMessage = "Hello first-timer!"
     } else {
        welcomeMessage = "Welcome back. You last visited on " +
           getVisitDate();
     }
  }

  private function getVisitDate():Date {
     return mySO.data.visitDate;
  }

  private function storeDate():void {
mySO.data.visitDate = new Date();
mySO.flush();
  }

  private function deleteLSO():void {
     // Deletes the SharedObject from the client machine.
     // Next time they log in, they will be a 'first-timer'.
mySO.clear();
  }

  ]]></mx:Script>
  <mx:Label id="label1" text="{welcomeMessage}"/>
  <mx:Button label="Log Out" click="storeDate()"/>
  <mx:Button label="Delete LSO" click="deleteLSO()"/>
</mx:Application>

 

 

<!--?xml version="1.0"?--> <!-- lsos/WelcomeMessage.mxml -->

 

分享到:
评论

相关推荐

    Flex学习—关于Shareobject对象(本地共享对象)

    在IT行业中,Flex是一种基于ActionScript 3.0和Flash Player的开源框架,主要用于构建富互联网应用程序(RIA)。本文将深入探讨Flex中的一个...了解和掌握ShareObject的使用,对于任何Flex开发者来说都是非常重要的。

    flex shareObject 本地共享

    仿造qq登陆功能写的 Flash提供的本地共享对象ShareObject是一种跨平台较好的方案,当然在客户端已经安装Flash Player的情况下。 ShareObject默认只能存储100Kb的数据,用户可

    Flex ShareObject简单应用

    Flex ShareObject的使用非常灵活,通常用于那些需要记住用户状态信息的场景,比如用户偏好设置、游戏分数、登录状态等。每个网站可以使用一个默认最大为100K字节的存储空间。如果尝试写入超过这个默认大小的数据量,...

    ShareObject实例

    总结来说,"ShareObject实例"是一个关于如何在Flash应用中使用ShareObject进行数据共享和持久化的示例。通过LoginPanel.fla和ShareObject.fla的结合使用,开发者可以构建出具有用户登录记忆功能或其他类似数据管理...

    ShareObject对象详解

    ShareObject对象是Adobe Flex中用于数据共享的一种机制,它能够帮助开发者在客户端和服务器端之间存储和传递数据。ShareObject分为两种类型:LSO(Local Shared Object)和RSO(Remote Shared Object)。 LSO(本地...

    flex必读新手必读

    RTMP支持音频、视频流和数据的传输,通常用于Flex中的ShareObject功能,通过TCP建立持久连接。 另一个重要的协议是AMF(Action Message Format),它是Flex和服务器之间交换数据的一种高效序列化格式,分为AMF0和...

    flex多人多房间 聊天室

    在本文中,我们将深入探讨Flex和Red5技术以及如何利用ShareObject实现即时聊天功能。 Flex是Adobe开发的一种开源框架,用于构建富互联网应用程序(RIA)。它基于ActionScript编程语言和MXML标记语言,可以创建具有...

    Flex试题 .txt

    尽管Flex默认使用MXML和CSS来定义样式,但也可以通过ExternalInterface或使用ActionScript来应用CSS样式到SWF文件中的元素。这涉及到将SWF嵌入到支持CSS的环境中,并使用JavaScript或AS来桥接样式应用。 ### 31. AS...

    juv-rtmp-client shareobject连接

    "juv-rtmp-client shareobject连接"是指使用Java实现的一个RTMP客户端,该客户端支持ShareObject功能,用于在客户端和服务器之间交换实时的数据。 ShareObject是Flash Player中的一个特性,它可以看作是一种轻量级...

    FLASH8中ShareObject的简单运用

    在不连接数据库的情况下,保存数据,并在下次打开SWF文件时依旧可以读取到以前写入的数据. 其他的可以照葫芦画瓢,都一个样的。

    flex 测试写的一些demo集合

    在Flex应用中,ShareObject可用于存储用户设置或游戏进度,即使用户关闭并重新打开应用,数据也能保留。 "State切换"是指Flex应用中状态管理的概念。通过定义不同的状态,开发者可以在同一组件上展示不同的布局或...

    flex 基于red5的多人聊天

    为了深入了解这个例子,你可以查阅“flex shareobject.txt”文件,这可能包含了关于如何在Flex中创建和使用SharedObject的代码示例,以及如何配置Red5服务器来支持多人聊天的详细步骤。通过学习这份文档,你可以理解...

    AppletFirewall&ShareObject;

    标题 "AppletFirewall&ShareObject" 指出了本文讨论的主要内容,即关于Java Card平台中Applet防火墙机制以及对象共享机制。 描述部分反复强调了智能卡应用防火墙与共享机制的概念,指出了该机制的目的是保护单个...

    Flex新手教程_入门级学习笔记

    - **读写ShareObject**:用于持久化数据,即使浏览器关闭后也能保留。 - **BlazeDS配置及使用**:设置服务器端和客户端以实现数据传输。 - **回溯**:实现用户界面的状态管理。 - **Event**:用于处理用户交互。 - *...

    入门简单的FLEX验证码一例

    这只是一个简单的示例,实际的验证过程可能会更复杂,例如利用ShareObject与服务器共享数据,或者使用HTTPService或URLRequest发送AJAX请求进行后台验证。 4. **验证机制扩展**:这个简单的验证码例子只涉及了用户...

    shared Object 用法

    使用`SharedObject.getLocal()`方法可以创建一个本地共享对象。数据会通过`data`属性保存,并在用户下次运行SWF文件时可继续访问。需要注意的是,如果在影片结束时清空了共享对象的属性,那么下次启动时将无法获取到...

    引用外部类实现Flash Cookie的读写

    在AS2中,通常使用`ShareObject`类来创建和操作Flash Cookie。然而,由于`ShareObject`的某些功能较为复杂,开发者常常选择创建自定义的外部类来封装这些操作,以简化代码并提高可维护性。 在本示例中,我们可能有...

Global site tag (gtag.js) - Google Analytics