測試環境:
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 -->
分享到:
相关推荐
在IT行业中,Flex是一种基于ActionScript 3.0和Flash Player的开源框架,主要用于构建富互联网应用程序(RIA)。本文将深入探讨Flex中的一个...了解和掌握ShareObject的使用,对于任何Flex开发者来说都是非常重要的。
仿造qq登陆功能写的 Flash提供的本地共享对象ShareObject是一种跨平台较好的方案,当然在客户端已经安装Flash Player的情况下。 ShareObject默认只能存储100Kb的数据,用户可
Flex ShareObject的使用非常灵活,通常用于那些需要记住用户状态信息的场景,比如用户偏好设置、游戏分数、登录状态等。每个网站可以使用一个默认最大为100K字节的存储空间。如果尝试写入超过这个默认大小的数据量,...
总结来说,"ShareObject实例"是一个关于如何在Flash应用中使用ShareObject进行数据共享和持久化的示例。通过LoginPanel.fla和ShareObject.fla的结合使用,开发者可以构建出具有用户登录记忆功能或其他类似数据管理...
ShareObject对象是Adobe Flex中用于数据共享的一种机制,它能够帮助开发者在客户端和服务器端之间存储和传递数据。ShareObject分为两种类型:LSO(Local Shared Object)和RSO(Remote Shared Object)。 LSO(本地...
RTMP支持音频、视频流和数据的传输,通常用于Flex中的ShareObject功能,通过TCP建立持久连接。 另一个重要的协议是AMF(Action Message Format),它是Flex和服务器之间交换数据的一种高效序列化格式,分为AMF0和...
在本文中,我们将深入探讨Flex和Red5技术以及如何利用ShareObject实现即时聊天功能。 Flex是Adobe开发的一种开源框架,用于构建富互联网应用程序(RIA)。它基于ActionScript编程语言和MXML标记语言,可以创建具有...
尽管Flex默认使用MXML和CSS来定义样式,但也可以通过ExternalInterface或使用ActionScript来应用CSS样式到SWF文件中的元素。这涉及到将SWF嵌入到支持CSS的环境中,并使用JavaScript或AS来桥接样式应用。 ### 31. AS...
"juv-rtmp-client shareobject连接"是指使用Java实现的一个RTMP客户端,该客户端支持ShareObject功能,用于在客户端和服务器之间交换实时的数据。 ShareObject是Flash Player中的一个特性,它可以看作是一种轻量级...
在不连接数据库的情况下,保存数据,并在下次打开SWF文件时依旧可以读取到以前写入的数据. 其他的可以照葫芦画瓢,都一个样的。
在Flex应用中,ShareObject可用于存储用户设置或游戏进度,即使用户关闭并重新打开应用,数据也能保留。 "State切换"是指Flex应用中状态管理的概念。通过定义不同的状态,开发者可以在同一组件上展示不同的布局或...
为了深入了解这个例子,你可以查阅“flex shareobject.txt”文件,这可能包含了关于如何在Flex中创建和使用SharedObject的代码示例,以及如何配置Red5服务器来支持多人聊天的详细步骤。通过学习这份文档,你可以理解...
标题 "AppletFirewall&ShareObject" 指出了本文讨论的主要内容,即关于Java Card平台中Applet防火墙机制以及对象共享机制。 描述部分反复强调了智能卡应用防火墙与共享机制的概念,指出了该机制的目的是保护单个...
- **读写ShareObject**:用于持久化数据,即使浏览器关闭后也能保留。 - **BlazeDS配置及使用**:设置服务器端和客户端以实现数据传输。 - **回溯**:实现用户界面的状态管理。 - **Event**:用于处理用户交互。 - *...
这只是一个简单的示例,实际的验证过程可能会更复杂,例如利用ShareObject与服务器共享数据,或者使用HTTPService或URLRequest发送AJAX请求进行后台验证。 4. **验证机制扩展**:这个简单的验证码例子只涉及了用户...
使用`SharedObject.getLocal()`方法可以创建一个本地共享对象。数据会通过`data`属性保存,并在用户下次运行SWF文件时可继续访问。需要注意的是,如果在影片结束时清空了共享对象的属性,那么下次启动时将无法获取到...
在AS2中,通常使用`ShareObject`类来创建和操作Flash Cookie。然而,由于`ShareObject`的某些功能较为复杂,开发者常常选择创建自定义的外部类来封装这些操作,以简化代码并提高可维护性。 在本示例中,我们可能有...