Flex ActionScript 3.0 SharedObject 用于在用户计算机或服务器上读取和存储有限的数据

flash.net
public class SharedObject
继承 SharedObject 

Inheritance

 EventDispatcher 

Inheritance

 Object

语言版本:  ActionScript 3.0
运行时版本:  AIR 1.0 Flash Player 9

SharedObject 类用于在用户计算机或服务器上读取和存储有限的数据量。使用共享对象,可在永久贮存在本地计算机或远程服务器上的多个客户端 SWF 文件和对象之间实现实时数据共享。本地共享对象类似于浏览器 Cookie,远程共享对象类似于实时数据传输设备。若要使用远程共享对象,您需要 Adobe Flash Media Server。

可使用共享对象执行以下操作:

  • 保持本地永久性。这是使用共享对象的最简单方法,并且无需使用 Flash Media Server。 例如,可以调用 SharedObject.getLocal() 以在应用程序中创建共享对象,如带记忆功能的计算器。用户关闭计算器时,Flash Player 将在用户计算机的共享对象中保存最后一个值。 计算器下一次运行时,将包含先前所拥有的值。或者,在计算器应用程序关闭之前,如果将共享对象的属性设置为 null,下次运行该应用程序时,它在打开时不包含任何值。维护本地永久性的另一示例就是跟踪用户首选项或复杂网站的其它数据,如用户在新闻网站上所阅读文章的记录。跟踪此信息将允许您以不同方式分别显示已经阅读的文章和新的未读文章。在用户计算机上存储此信息可减小服务器负载。
  • 在 Flash Media Server 上存储并共享数据。共享对象可以在服务器上存储数据以供其它客户端进行检索。例如,调用SharedObject.getRemote() 以创建一个在服务器上永久保留的远程共享对象,如电话簿。每次客户端对共享对象进行更改时,修改后的数据可供当前或以后连接到该对象的所有客户端使用。如果还在本地永久保留了该对象,并且客户端在未连接到服务器时更改了数据,下次客户端连接到远程共享对象时,则会将数据复制到该对象。
  • 实时共享数据。共享对象可以实现多个客户端的实时数据共享。例如,您可以打开一个存储连接到聊天室的用户列表的远程共享对象,连接到该对象的所有客户端都能看到此列表。当用户进入或离开聊天室时,将更新该对象,连接到该对象的所有客户端都能看到修改的聊天室用户列表。

若要创建本地共享对象,请调用 SharedObject.getLocal()。若要创建远程共享对象,请调用 SharedObject.getRemote()

当应用程序关闭时,将会刷新共享对象或将其写入磁盘。也可以调用 flush() 方法以显式地将数据写入磁盘。

本地磁盘空间注意事项。本地共享对象具有一些限制,这些限制很重要,您在设计应用程序时要予以考虑。有时可能不允许 SWF 文件写入本地共享对象,有时可能会在您不知情的情况下删除在本地共享对象中存储的数据。Flash Player 用户可以管理对单个域或所有域可用的磁盘空间。当用户减少可用磁盘空间时,一些本地共享对象可能会被删除。Flash Player 用户还具有隐私控制能力,它们可防止第三方域(当前浏览器地址栏中域之外的域)读取或写入本地共享对象。

注意:在本地计算机(而不是远程服务器)上存储和运行的 SWF 文件始终可以将第三方共享对象写入磁盘。有关第三方共享对象的详细信息,请参阅“Flash Player 帮助”中的“全局存储设置”面板

最好检查与磁盘空间数量和用户隐私控制有关的故障。在调用 getLocal() 和 flush() 时执行这些检查:

  • SharedObject.getLocal() -- 调用此方法失败时(如用户禁用了第三方共享对象,并且您的 SWF 文件的域与浏览器地址栏中的域不匹配),Flash Player 将引发异常。
  • SharedObject.flush() -- 调用此方法失败时,Flash Player 将引发异常。调用成功时,将返回 SharedObjectFlushStatus.FLUSHED。需要额外存储空间时,将返回 SharedObjectFlushStatus.PENDING。Flash Player 提示用户增加本地保存信息的存储空间。随后,对 netStatus事件进行调度,同时信息对象将指示刷新是否成功。

如果您的 SWF 文件尝试创建或修改本地共享对象,请确保 SWF 文件的宽度至少为 215 像素,高度至少为 138 像素,这是用于显示提示用户增加其本地共享对象存储限制的对话框的最小尺寸。如果您的 SWF 文件小于这些尺寸,且需要增加存储限制,则 SharedObject.flush() 失败,返回SharedObjectFlushedStatus.PENDING,并调度 netStatus 事件。

远程共享对象。如果使用 Flash Media Server,您可以创建并使用远程共享对象,这些对象是由连接到应用程序的所有客户端实时共享的。在一个客户端更改远程共享对象的属性时,也会为所有连接的客户端更改此属性。您可以使用远程共享对象同步客户端,例如,在玩多人游戏的用户。

每个远程共享对象具有一个 data 属性,此对象包含存储数据的属性。可以调用 setProperty() 以更改数据对象的属性。服务器将更新这些属性,调度 sync 事件,并将这些属性发回到连接的客户端。

您可以选择将远程共享对象永久保留在客户端和/或服务器上。默认情况下,Flash Player 最多在本地永久保存 100K 的远程共享对象。在尝试保存较大的对象时,Flash Player 将显示一个“本地存储”对话框,用户可以在其中允许或拒绝共享对象的本地存储。请确保舞台大小至少为 215 x 138 像素;这是 Flash 显示该对话框所需的最小大小。

如果用户选择“允许”,服务器将保存共享对象并调度 code 属性值为 netStatus 的 SharedObject.Flush.Success 事件。如果用户选择“拒绝”,服务器不会保存共享对象并调度 SharedObject.Flush.Failed 的 netStatus 事件。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


一:display:flex布局display:flex是一种布局方式。它即可以应用于容器中,也可以应用于行内元素。是W3C提出的一种新的方案,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持。Flex是FlexibleBox的缩写,意为"弹性布局",用来为盒状模型提供最大的灵
1. flex设置元素垂直居中对齐在之前的一篇文章中记载过如何垂直居中对齐,方法有很多,但是在学习了flex布局之后,垂直居中更加容易实现HTML代码:1<divclass="demo">2<divclass="inner">3<p>这是一个测试这是一个测试这是一个测试这是一个测试这是一个测试</p>4</div
移动端开发知识点pc端软件和移动端apppc端软件是什么,有哪些应用。常见的例子,比如360杀毒,photoShop,VisualStudioCode等等移动端app是什么,有哪些应用。常见的例子,比如手机微信,手机qq,手机浏览器,美颜相机等等PC端与移动端的区别第一:PC考虑的是浏览器的兼容性,移动端考
最近挺忙的,准备考试,还有其他的事,没时间研究东西,快周末了,难得学点东西,grid是之前看到的,很好奇,讲的二维的布局,看起来很方便,应该很适合移动端布局,所以今天抽时间学一学,这个当是笔记了。参考的是阮老师的博客。阮一峰:CSSGrid网格布局教程http://www.ruanyifeng.com/blog/2019/03/g
display:flex;把容器设置为弹性盒模型(设置为弹性盒模型之后,浮动,定位将不会有效果)给父元素设置的属性:(1)display:flex---把容器设置为弹性盒模型。(2)flex-direction---设置弹性盒模型主轴方向默认情况下主
我在网页上运行了一个Flex应用程序,我想使用Command←组合键在应用程序中触发某些操作.这在大多数浏览器上都很好,但在Safari上,浏览器拦截此键盘事件并导致浏览器“返回”事件.有没有办法,通过Flex或通过页面上的其他地方的JavaScript,我可以告诉Safari不要这样做?解决方法:简短的
flex布局,flex-item1<template>2<viewclass="container">3<viewclass="greentxt">4A5</view>6<viewclass="redtxt">7B8<
我应该设计一个大型多点触控屏幕的应用程序.从大到大,我的意思是新闻广播员(大约55英寸及以上).该应用程序是一个交互式地图.我的问题是:开发应用程序的技术.我的第一个想法是在AdobeFlex中制作,但是HTML5也是如此……必须有一些非常棒的Java库用于触摸交互,但是在Windows平台上
<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><metahttp-equiv="X-UA-Compatible&quo
【1】需求:  【2】解决方案:最近遇到布局上要求item两端对齐,且最后一行在列不满的情况下要求左对齐,使用flex的justify-content:space-between;实现时发现最后一行不能左对齐,而是两端对齐方式。 不是项目上想要的效果#网上查了一些资料,有两种方法可以实现效果:**1.
我有一个java套接字服务器,它在连接时将Animal对象发送到Flash客户端.对象发送方式如下:Amf3Outputamf3Output=newAmf3Output(SerializationContext.getSerializationContext());amf3Output.setOutputStream(userSocket.getOutputStream());amf3Output.writeObject(animal)
我正在开发一个Flex3.4应用程序,它通过最新版本的BlazeDS与JBoss-4.2.2服务器上运行的JavaEE后端进行交互.当我在Tomcat上从FlashBuilder4beta2运行Flex应用程序时,一切都很好,Flex应用程序能够进行所需的远程调用.但我的生产环境是在JBoss上,当我将应用程序移动到JBoss时(更
我有一个非常大的问题.我使用Flex3/Tomcat/BlazeDS/Spring编写了一个大型应用程序,在本地开发时运行良好,当我部署到公共开发环境时很好,但是当部署到我们的测试环境时经常失败.当远程处理请求花费大量时间(超过20秒)时,故障似乎最常发生.在我的开发服务器上,错误发生,但仅
弹性和布局display:flex在ie6,ie7不兼容状态,一般在pc用的比较少,在手机端所有的浏览器都是支持的控制子元素在父元素里面的位置关系display:flex是给父元素加的文档流是按照主轴排列,只要父元素加了flex,那么里面的子元素全部可以直接添加宽高主轴的方向
FLEX2.0源码分析(一)https://www.jianshu.com/p/8bc4c5f4b19fFLEX源码分析二(网络监测swizzle)https://www.jianshu.com/p/ffb95f2cbda6FLEX源码分析三(网络监测记录FLEXNetworkRecorder)https://www.jianshu.com/p/66267dc922c5FLEX源码分析四(Systemlog)https://www.jianshu.
1<!DOCTYPEhtml>2<htmllang="en">3<head>4<metacharset="UTF-8">5<title><itle>6<style>7*{8margin:0;9padding:0;10
<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><metahttp-equiv="X-UA-Compatible&qu
flex:将对象作为弹性伸缩盒显示inline-flex:将对象作为内联块级弹性伸缩盒显示两者都是使子元素们弹性布局,但是如果是flex,父元素的尺寸不由子元素尺寸动态调整,不设置时默认是100%,而inline-flex则会使父元素尺寸跟随子元素们的尺寸动态调整。
<html><head><metacharset="utf-8"><metaname="viewport"content="width=device-width"><title>test<itle><stylemedia="screen">.tab-head{list-style-type:no
有没有办法使用邮政编码找到径向距离?我的任务是搜索居住在指定距离内的所有用户.我知道用户的zipcodes.例如,距离当前位置25英里的用户.我有其他搜索类别,我正在使用mysql查询.我无法解决距离问题.我的后端是在PHP中Flex的前端和前端.对我来说最好的选择就是www.zip-codes.com