SharedObject 支持哪些数据类型?

2024-01-13

我知道用 SharedObject 存储字符串和数字是一件简单的事情,而且我也熟悉这类事情:

var sharedObject:SharedObject = SharedObject.getLocal("userData");
var obj:Object = new Object();
obj.prop = "value";
sharedObject.data.userobj= obj;
sharedObject.flush();

但是,我试图存储 GameStage 类的对象,该类是我定义的用于保存有关游戏中阶段的数据的类。这种类型的事情似乎不起作用:

var sharedObject:SharedObject = SharedObject.getLocal("userData");
var stageOne:GameStage = new GameStage();
stageOne.highScore = 99999;
sharedObject.data.stageOne = stageOne;
sharedObject.flush();

此代码不会引发错误,但是当我稍后尝试检索阶段数据时,如下所示:

stageOne = sharedObject.data.stageOne;

我收到此错误:

TypeError: Error #1034: Type Coercion failed: cannot convert Object@3d220629 to GameStage.

我想我的问题是:到底什么类型的数据类型可以存储在 SharedObject 中?我在网上看到的所有地方都用“任何可以在 Flash 中使用的东西”来回答这个问题,这不是很具有描述性 - 显然我的 GameStage 类也可以在 Flash 中使用。是否存在我不知道的从 SharedObject 检索数据的情况?

我的预测是我将无法以这种方式存储我的舞台数据。如果是这种情况,有人可以建议另一种方法来保存数据吗?


您可以将任何对象存储在共享对象 http://livedocs.adobe.com/flex/3/html/help.html?content=lsos_3.html,但你需要先注册该类:

您可以存储键入的 ActionScript 共享对象中的实例。你做 通过调用 flash.net.registerClassAlias() 方法 注册课程。如果你创建 你的类的一个实例并存储它 在您共享的数据成员中 对象,然后读出该对象, 你将得到一个类型化的实例。经过 默认情况下,共享对象 objectEncoding 属性支持 AMF3 编码,并解压您存储的 SharedObject 对象的实例; 存储的实例保留相同的 调用时指定的类型 registerClassAlias() 方法。

需要注意的是,存储对象图有时会导致存储问题。在 SharedObject 通知用户并请求存储更多数据之前,您可以在 SharedObject 中存储的数据量是有限制的。我相信这个阈值默认是 100k。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SharedObject 支持哪些数据类型? 的相关文章

  • 如何关闭Flex中的所有弹出窗口?

    我想通过按下按钮来显示图像上的所有弹出窗口 已经弹出并单独关闭 并希望在按下另一个按钮时关闭所有这些窗口 任何帮助表示赞赏 尝试这个 package com devahead utils import flash display Displ
  • 在不使用服务器套接字的情况下侦听 AS3 (AIR) 客户端中的传入连接

    我设法创建一个 C 服务器 使用它向 AS3 AIR 客户端发送文件sockets 在 AS3 方面我使用的是flash net Socket库通过以下方式接收数据TCP 它是这样工作的 gt 我打开我的服务器 它侦听客户端 另外我可以创建
  • 正则表达式解析货币价值

    我需要在 AS3 中编写一个 RegExp 它将 Excel 格式的货币值解析为数字 例如 正则表达式 35 600 00 35600 并检查其格式是否正确 使用 作为千位分隔符 作为小数点 货币符号可以是任何符号 不仅仅是 并且可以位于开
  • Actionscript 3 的面向方面编程库/框架?

    我正在寻找 Actionscript 3 的全功能 AOP 库 到目前为止我注意到以下项目 但它们似乎都有问题 http farmcode org page Sodality aspx http farmcode org page Soda
  • URLLoader 数据到 BitmapData

    我正在尝试加载 SWF 文件旁边的图像文件 像这样的东西 var loader URLLoader new URLLoader loader dataFormat URLLoaderDataFormat BINARY loader addE
  • 将过滤器应用于 AS3 中的所有内容

    我正在尝试在 AS3 Flex SDK 中添加过滤器 我可以为任何一个对象添加一个过滤器 但我想将过滤器应用到一切那是某个对象的子对象 假设弹出一个暂停窗口 暂停窗口下方的所有内容都会变得模糊 将过滤器应用于每个单独的对象 例如 迭代列表
  • Flex:获取自己的 SWF 文件名?

    有没有办法以编程方式确定我的类正在运行的 swf 文件名 Thanks Stage http livedocs adobe com flex 3 langref flash display Stage html has a 加载器信息 ht
  • 一个编译器错误让我在 ActionScript 中感到困惑

    首先 我想解释一下 我对 ActionScript 不熟悉 所以不要因为一些基本的错误而责怪我 我刚刚学会了很短的时间 因此 编写 ActionScript 脚本的一些技巧总是值得赞赏的 我不知道编译器为什么说 我的一个类的构造函数不接受任
  • 在 Flex 中将字符串模式解析为日期

    flex 中是否有某种方法可以解析迄今为止的字符串 我希望它支持类似于 dateformatter 的自定义格式 使用 dateformatter 类 我们可以解析 formatString property 指定的各种字符串格式的日期对象
  • Flex/AS3很奇怪的简单数字运算问题

    我的问题在 Flex 中描述起来非常简单 0 8 0 2 0 6000000000000001 以前有人得到过这个 我确定前两个成员是 0 8 和 0 2 并且是 Number 类 为什么会发生这种情况 另一件事 我从 像这样输入 var
  • 定义 fl.controls: 找不到标签

    我正在使用 ActionScript 3 在 FlashDevelop 中进行开发 当我尝试执行以下操作时出现以下错误import fl controls Label Definition fl controls Label could n
  • 共享对象发送方法

    在 FMS 中 我想使用共享对象在聊天应用程序中发送消息 因为它是实时的 我的问题是 如何使用共享对象在实时聊天应用程序中向用户来回发送消息 这需要服务器端脚本 客户端还是两者都需要 您只需要在服务器端编写一些特定功能的代码 例如安全功能
  • 如何在 Flex 3 中使用 htmlText 作为单选按钮标签

    我需要在 Flex 3 中为单选按钮显示一些粗体单词 如下所示 选项 1 你好world 选项2 Hello world 我看到单选按钮的标签没有 htmlText 属性 有人对完成这个要求有什么建议吗 Thanks Anji 蒂莫菲 达维
  • 从另一个域加载外部图像

    是否可以从另一个域加载图像 jpg png gif 并操作像素 我想当下载 复制图像时它就在我的域中 使用加载器并将内容添加到图像组件时 我在调试器中收到错误 我想这里有一些跨域策略在起作用 但在继续之前我需要更确定它是如何工作的 我想 如
  • Flex 字典字面量

    在 Flex 中工作 我需要用相当复杂的结构填充字典 基于本文档页面 http livedocs adobe com flex 3 html help html content 10 Lists of data 4 html我尝试通过以下语
  • 将日期转换为 UTC 的正确方法

    如果这个问题没有多大意义 我很抱歉 但我是 Actionscript 的新手 并且想知道您是否可以帮助我解决这个问题 我正在构建一个给定时区的应用程序 告诉您该位置的时间 当我使用时区为 GMT UTC 的位置时 它效果很好 但如果主机上的
  • 在类之间调度事件

    我有一个自定义事件类 public class FFTDrawEvent extends Event public static const DRAW EVENT String drawEvent private var param Arr
  • 在 ActionScript 3 中在形状上绘制文本

    有没有办法仅使用 ActionScript 在 DisplayObject 或 Shape 中绘制文本 我在网上找到的唯一方法是创建 TextField 但我无法将 TF 添加到 DisplayObject 或 Shape Edit 解决了
  • 将 < 或 > 运算符作为参数传递给函数?

    我的函数里面有一个if 像这样的声明 if passedValue lt staticValue 但我需要能够传递一个参数来指示 if 表达式是像上面那样还是 if passedValue gt staticValue 但我真的无法通过 l
  • 使用ExternalInterface和IE从JavaScript获取Flash中的当前URL

    我正在尝试获取 Flash 播放器当前所在的 URL 不是 swf 文件的 URL 而是浏览器指向的 URL 到目前为止我已经使用过 var st String ExternalInterface call window location

随机推荐