0

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

  • 部分
  • ArrayOfPart

我将部件列表本地缓存在 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();

验证 SharedObject:

  • SharedObject PartsList.sol存在于应有的位置
  • 我打开了 SharedObject 文件,ArrayOfPart 数据看起来有效

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

so = SharedObject.getLocal("PartsList");

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

4

3 回答 3

1

我解决了我自己的问题。

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

顺便说一句,这是 Flash 9。

于 2009-01-01T20:06:03.187 回答
0

这看起来很艰难。

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

有什么方法可以分享你的资源吗?这会有所帮助,因为我个人没有足够的信息来诊断没有看到其余代码的情况:(

还....

是否还有其他内容正在写入或更改此共享对象?

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

我有什么版本的 Flash?

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

这是否发生在所有浏览器和所有平台上?

于 2009-01-01T19:30:17.237 回答
0

只是一种预感,但是,自从我安装了 Flash Player 10,我在浏览时看到很多共享对象的错误。可能与新引入的沙盒/安全限制有关吗?

于 2009-01-01T19:58:17.960 回答