我有一个基于 Flex 3 构建的零件应用程序,但零件列表有问题。零件清单使用两个对象:

  • 部分
  • 零件数组

我将零件列表缓存在本地 SharedObject 中。 这几个月以来一直运行良好. 。我向 Part 类添加了一个新的布尔属性,并重新导入了 Web 服务(这应该不会影响任何内容),现在, 我可以很好地保存 ArrayOfPart SharedObject,但是当我尝试检索 SharedObject 时,我收到“ArgumentError:错误#1063:ArrayOfPart 上的参数计数不匹配。预期为 1,结果为 0。然后它完全删除我的 SOL 文件。

(我在 Part 和 ArrayOfPart 上使用了 RegisterClass,因此它们都可以序列化为 SharedObjects)

这是我遇到错误时遵循的步骤:

保存共享对象:

so = SharedObject.getLocal("PartsList");
so.data.AllParts = AllParts;
so.flush();

验证共享对象:

  • 共享对象 零件清单.sol 存在于它应该存在的地方
  • 我打开 SharedObject 文件,ArrayOfPart 数据看起来有效

重新启动应用程序,它会从 SharedObject 中检索部件列表。这是抛出错误 #1063 并导致 sol 文件被删除的行:

so = SharedObject.getLocal("PartsList");

看起来数据保存在 SharedObject 中时格式可能不正确?这可能吗?

有帮助吗?

解决方案

我解决了我自己的问题。

ArrayOfPart 有一个带有参数的构造函数。当我删除构造函数时,错误就消失了。

顺便说一句,这是 Flash 9。

其他提示

这看起来很难。

我不认为这是一个形成或序列化问题。也许您的代码中的其他内容正在写入共享对象?

有什么办法可以分享一下你的源码吗?这会有所帮助,因为我个人没有足够的信息来诊断正在发生的事情而看不到代码的其余部分:(

还....

是否有其他东西正在写入或更改此共享对象?

我的所有对象都是在 AS3 中创建的还是一些在 MXML 中创建的(我注意到 Flex 编译器并不总是能很好地识别 MXML)。

我有什么版本的 Flash?

如果是Flash 10,在Flash 9中是否也会出现同样的问题?

所有浏览器和所有平台上都会发生这种情况吗?

只是预感,但是,自从我安装了 Flash Player 10 以来,我在浏览时看到了许多共享对象错误。是否与新引入的沙箱/安全限制有关?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top